บล็อกเซิร์ฟเวอร์ Apache / MySQL


1

ฉันจัดการเซิร์ฟเวอร์ที่ใช้ Ubuntu 12.04

ในสองสามสัปดาห์ที่ผ่านมาเซิร์ฟเวอร์เริ่มทำงานผิดปกติและฉันไม่สามารถนึกถึงสิ่งที่สำคัญที่มีการเปลี่ยนแปลง

นี่คือรูปแบบ: เซิร์ฟเวอร์เริ่มรายงานข้อผิดพลาดของ MySQL พวกเขาสามารถเป็นหนึ่งในสิ่งต่อไปนี้:

  • ข้อผิดพลาด ADODB: ขาดการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ที่ 'กำลังรอแพ็คเก็ตการสื่อสารเริ่มต้น' ข้อผิดพลาดของระบบ: 95
  • mysqli :: mysqli (): (HY000 / 2013): การเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ที่ 'ส่งข้อมูลการตรวจสอบสิทธิ์' หายไปข้อผิดพลาดของระบบ: 32
  • การเชื่อมต่อมากเกินไป

ซึ่งมักจะเกิดขึ้นในตอนกลางคืน (แต่ไม่เสมอไป) และในที่สุดเซิร์ฟเวอร์ก็ไม่สามารถเข้าถึงได้อย่างสมบูรณ์และตัวเลือกเดียวของฉันคือการรีสตาร์ทอย่างไร้ความปราณี

ตอนนี้ฉันได้เพิ่มงาน cron ที่รัน "ps -elf" ทุก ๆ 15 นาทีเพื่อแสดงสิ่งที่เกิดขึ้นและนี่คือสิ่งที่มันแสดงเมื่อปัญหาเริ่มต้น:

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 -  6051 poll_s Nov05 ?        00:00:00 /sbin/init
1 S root         2     0  0  80   0 -     0 kthrea Nov05 ?        00:00:00 [kthreadd]
1 S root         3     2  0  80   0 -     0 run_ks Nov05 ?        00:00:03 [ksoftirqd/0]
1 S root         4     2  0  80   0 -     0 worker Nov05 ?        00:00:03 [kworker/0:0]
1 S root         6     2  0 -40   - -     0 cpu_st Nov05 ?        00:00:00 [migration/0]
5 S root         7     2  0 -40   - -     0 watchd Nov05 ?        00:00:01 [watchdog/0]
1 S root         8     2  0 -40   - -     0 cpu_st Nov05 ?        00:00:00 [migration/1]
1 S root        10     2  0  80   0 -     0 run_ks Nov05 ?        00:00:04 [ksoftirqd/1]
1 S root        11     2  0  80   0 -     0 worker Nov05 ?        00:00:05 [kworker/0:1]
5 S root        12     2  0 -40   - -     0 watchd Nov05 ?        00:00:01 [watchdog/1]
1 S root        13     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [cpuset]
1 S root        14     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [khelper]
5 S root        15     2  0  80   0 -     0 devtmp Nov05 ?        00:00:00 [kdevtmpfs]
1 S root        16     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [netns]
1 S root        17     2  0  80   0 -     0 worker Nov05 ?        00:00:00 [kworker/u:1]
1 S root        18     2  0  80   0 -     0 bdi_sy Nov05 ?        00:00:00 [sync_supers]
1 S root        19     2  0  80   0 -     0 bdi_fo Nov05 ?        00:00:00 [bdi-default]
1 S root        20     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [kintegrityd]
1 S root        21     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [kblockd]
1 S root        22     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [ata_sff]
1 S root        23     2  0  80   0 -     0 hub_th Nov05 ?        00:00:00 [khubd]
1 S root        24     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [md]
1 S root        25     2  0  80   0 -     0 worker Nov05 ?        00:00:02 [kworker/1:1]
1 S root        26     2  0  80   0 -     0 watchd Nov05 ?        00:00:00 [khungtaskd]
1 D root        27     2  0  80   0 -     0 get_re Nov05 ?        00:00:08 [kswapd0]
1 S root        28     2  0  85   5 -     0 ksm_sc Nov05 ?        00:00:00 [ksmd]
1 S root        29     2  0  99  19 -     0 khugep Nov05 ?        00:00:00 [khugepaged]
1 S root        30     2  0  80   0 -     0 fsnoti Nov05 ?        00:00:00 [fsnotify_mark]
1 S root        31     2  0  80   0 -     0 ecrypt Nov05 ?        00:00:00 [ecryptfs-kthrea]
1 S root        32     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [crypto]
1 S root        40     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [kthrotld]
1 S root        41     2  0  80   0 -     0 scsi_e Nov05 ?        00:00:00 [scsi_eh_0]
1 S root        42     2  0  80   0 -     0 scsi_e Nov05 ?        00:00:00 [scsi_eh_1]
1 S root        44     2  0  80   0 -     0 worker Nov05 ?        00:00:00 [kworker/u:3]
1 S root        63     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [devfreq_wq]
1 S root       216     2  0  80   0 -     0 worker Nov05 ?        00:00:07 [kworker/1:2]
1 S root       222     2  0  80   0 -     0 bdi_wr Nov05 ?        00:00:05 [flush-8:0]
1 S root       223     2  0  80   0 -     0 kjourn Nov05 ?        00:00:31 [jbd2/sda1-8]
1 S root       224     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [ext4-dio-unwrit]
1 S root       331     1  0  80   0 -  4308 poll_s Nov05 ?        00:00:00 upstart-udev-bridge --daemon
5 S root       346     1  0  80   0 -  5400 ep_pol Nov05 ?        00:00:00 /sbin/udevd --daemon
5 S syslog     355     1  0  80   0 - 62367 poll_s Nov05 ?        00:00:05 rsyslogd -c5
5 S root       440   346  0  80   0 -  5399 ep_pol Nov05 ?        00:00:00 /sbin/udevd --daemon
5 S root       441   346  0  80   0 -  5399 ep_pol Nov05 ?        00:00:00 /sbin/udevd --daemon
1 S root       455     2  0  80   0 -     0 balloo Nov05 ?        00:00:00 [vballoon]
1 S root       458     2  0  60 -20 -     0 rescue Nov05 ?        00:00:00 [kpsmoused]
1 S root       529     1  0  80   0 -  3797 poll_s Nov05 ?        00:00:00 upstart-socket-bridge --daemon
4 S root       599     1  0  80   0 - 12508 poll_s Nov05 ?        00:00:00 /usr/sbin/sshd -D
4 S root       632     1  0  80   0 -  5859 inet_c Nov05 ?        00:00:00 /usr/sbin/vsftpd
4 S root       653     1  0  80   0 -  3993 n_tty_ Nov05 tty4     00:00:00 /sbin/getty -8 38400 tty4
4 S root       656     1  0  80   0 -  3993 n_tty_ Nov05 tty5     00:00:00 /sbin/getty -8 38400 tty5
4 S root       663     1  0  80   0 -  3993 n_tty_ Nov05 tty2     00:00:00 /sbin/getty -8 38400 tty2
4 S root       664     1  0  80   0 -  3993 n_tty_ Nov05 tty3     00:00:00 /sbin/getty -8 38400 tty3
4 S root       669     1  0  80   0 -  3993 n_tty_ Nov05 tty6     00:00:00 /sbin/getty -8 38400 tty6
1 S root       672     1  0  80   0 -  1082 poll_s Nov05 ?        00:00:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket
5 S root       675     1  0  80   0 -  4778 hrtime Nov05 ?        00:00:02 cron
1 S daemon     676     1  0  80   0 -  4227 hrtime Nov05 ?        00:00:00 atd
4 S root       823     1  0  80   0 -  6277 ep_pol Nov05 ?        00:00:02 /usr/lib/postfix/master
4 S postfix    830   823  0  80   0 -  6834 ep_pol Nov05 ?        00:00:00 qmgr -l -t fifo -u
1 S root       875     1  0  80   0 - 83556 poll_s Nov05 ?        00:00:16 /usr/sbin/apache2 -k start
4 S root      1028     1  0  80   0 -  3993 n_tty_ Nov05 tty1     00:00:00 /sbin/getty -8 38400 tty1
5 D www-data  9931   875  0  80   0 - 97396 get_re Nov07 ?        00:00:13 /usr/sbin/apache2 -k start
5 S www-data 10104   875  0  80   0 - 97049 unix_s Nov07 ?        00:00:07 /usr/sbin/apache2 -k start
5 S www-data 10121   875  0  80   0 - 95995 unix_s 00:01 ?        00:00:07 /usr/sbin/apache2 -k start
5 S www-data 10197   875  0  80   0 - 94013 unix_s 00:26 ?        00:00:07 /usr/sbin/apache2 -k start
5 D www-data 10198   875  0  80   0 - 95983 get_re 00:29 ?        00:00:06 /usr/sbin/apache2 -k start
5 D www-data 10199   875  0  80   0 - 97456 get_re 00:29 ?        00:00:07 /usr/sbin/apache2 -k start
5 S www-data 10288   875  0  80   0 - 97365 unix_s 00:59 ?        00:00:05 /usr/sbin/apache2 -k start
5 S www-data 10539   875  0  80   0 - 98309 unix_s 02:26 ?        00:00:03 /usr/sbin/apache2 -k start
5 S www-data 10549   875  0  80   0 - 94254 unix_s 02:32 ?        00:00:03 /usr/sbin/apache2 -k start
5 S www-data 10583   875  0  80   0 - 95278 unix_s 02:42 ?        00:00:02 /usr/sbin/apache2 -k start
4 S postfix  10641   823  0  80   0 -  6794 ep_pol 03:03 ?        00:00:00 pickup -l -t fifo -u -c
5 D www-data 10705   875  0  80   0 - 93192 get_re 03:21 ?        00:00:01 /usr/sbin/apache2 -k start
5 D www-data 10706   875  0  80   0 - 96563 get_re 03:21 ?        00:00:01 /usr/sbin/apache2 -k start
5 S www-data 10707   875  0  80   0 - 93150 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10708   875  0  80   0 - 95042 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10709   875  0  80   0 - 96666 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10710   875  0  80   0 - 94554 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10711   875  0  80   0 - 96538 get_re 03:21 ?        00:00:01 /usr/sbin/apache2 -k start
5 D www-data 10713   875  0  80   0 - 92354 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10714   875  0  80   0 - 89009 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10715   875  0  80   0 - 93274 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10716   875  0  80   0 - 89289 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10717   875  0  80   0 - 94794 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10718   875  0  80   0 - 92354 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10719   875  0  80   0 - 92354 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10720   875  0  80   0 - 89168 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10723   875  0  80   0 - 89168 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10724   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10725   875  0  80   0 - 89168 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10726   875  0  80   0 - 89479 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10727   875  0  80   0 - 92354 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10728   875  0  80   0 - 89168 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10729   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10732   875  0  80   0 - 89077 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10733   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10735   875  0  80   0 - 89485 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10736   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10737   875  0  80   0 - 89481 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10738   875  0  80   0 - 88879 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10739   875  0  80   0 - 89289 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10740   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10741   875  0  80   0 - 89099 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10743   875  0  80   0 - 89009 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10744   875  0  80   0 - 89009 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10745   875  0  80   0 - 89481 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10746   875  0  80   0 - 89168 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10747   875  0  80   0 - 89009 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10748   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10749   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10750   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10751   875  0  80   0 - 89481 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10752   875  0  80   0 - 89481 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10753   875  0  80   0 - 92890 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10754   875  0  80   0 - 89485 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10755   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10756   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10757   875  0  80   0 - 89035 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10758   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10759   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10760   875  0  80   0 - 89481 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10761   875  0  80   0 - 89289 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10762   875  0  80   0 - 89168 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10763   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10764   875  0  80   0 - 88943 unix_s 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10765   875  0  80   0 - 88893 get_re 03:21 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10766   875  0  80   0 - 89095 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10767   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10768   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10769   875  0  80   0 - 89168 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10770   875  0  80   0 - 89168 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10771   875  0  80   0 - 88879 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10772   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10773   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10774   875  0  80   0 - 88045 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10775   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10776   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10777   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10779   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10780   875  0  80   0 - 89168 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10781   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10782   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10786   875  0  80   0 - 89035 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10787   875  0  80   0 - 89168 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10788   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10789   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10790   875  0  80   0 - 89485 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10791   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10792   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10799   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10800   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10806   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10807   875  0  80   0 - 89035 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10809   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10810   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10811   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10812   875  0  80   0 - 86561 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10813   875  0  80   0 - 87478 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10814   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10815   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10816   875  0  80   0 - 88943 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10817   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10818   875  0  80   0 - 88959 get_re 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10819   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10820   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10821   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10823   875  0  80   0 - 89009 unix_s 03:22 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10824   875  0  80   0 - 89009 unix_s 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10825   875  0  80   0 - 88567 get_re 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10831   875  0  80   0 - 89009 unix_s 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10832   875  0  80   0 - 89009 unix_s 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10833   875  0  80   0 - 88045 get_re 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10837   875  0  80   0 - 89009 unix_s 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10838   875  0  80   0 - 89009 unix_s 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10839   875  0  80   0 - 88630 get_re 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10840   875  0  80   0 - 89009 unix_s 03:23 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10841   875  0  80   0 - 87024 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10842   875  0  80   0 - 88112 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10843   875  0  80   0 - 86190 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10844   875  0  80   0 - 89009 unix_s 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10845   875  0  80   0 - 87925 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10846   875  0  80   0 - 88895 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10847   875  0  80   0 - 88381 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10849   875  0  80   0 - 88047 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10851   875  0  80   0 - 87154 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 10852   875  0  80   0 - 89009 unix_s 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10853   875  0  80   0 - 88448 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10854   875  0  80   0 - 87480 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10855   875  0  80   0 - 87797 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10856   875  0  80   0 - 88895 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10857   875  0  80   0 - 86494 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10867   875  0  80   0 - 88112 get_re 03:24 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10868   875  0  80   0 - 85396 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
1 S root     10869   675  0  80   0 -  8461 wait   03:25 ?        00:00:00 CRON
1 S root     10870   675  0  80   0 -  8461 wait   03:25 ?        00:00:00 CRON
5 D www-data 10871   875  0  80   0 - 87284 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10872   875  0  80   0 - 86451 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10874   875  0  80   0 - 85107 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10875   875  0  80   0 - 85606 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10876   875  0  80   0 - 85993 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10877   875  0  80   0 - 84996 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10878   875  0  80   0 - 88112 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10879   875  0  80   0 - 85588 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10880   875  0  80   0 - 85943 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10881   875  0  80   0 - 85606 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10882   875  0  80   0 - 84537 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
4 S ct       10883 10869  0  80   0 -  1101 wait   03:25 ?        00:00:00 /bin/sh -c ps -elf
4 S root     10884 10870  0  80   0 -  1101 wait   03:25 ?        00:00:00 /bin/sh -c php /var/www/html/teenfaith/moodle/admin/cli/cron.php > /dev/null
5 D www-data 10888   875  0  80   0 - 84665 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10889   875  0  80   0 - 85652 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10890   875  0  80   0 - 85107 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10891   875  0  80   0 - 84119 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10892   875  0  80   0 - 84932 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10893   875  0  80   0 - 84804 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10894   875  0  80   0 - 85606 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
5 D www-data 10895   875  0  80   0 - 85878 get_re 03:25 ?        00:00:00 /usr/sbin/apache2 -k start
0 R ct       10897 10883  7  80   0 -  4587 -      03:26 ?        00:00:00 ps -elf
0 R root     10898 10884  0  80   0 -  9142 ?      03:26 ?        00:00:00 php /var/www/html/teenfaith/moodle/admin/cli/cron.php
4 S mysql    11304     1  0  80   0 - 338439 futex_ Nov05 ?       00:11:15 /usr/sbin/mysqld
4 S postfix  24152   823  0  80   0 -  9555 ep_pol Nov06 ?        00:00:00 tlsmgr -l -t unix -u -c

อย่างที่คุณเห็นมีกระบวนการ 151 apache2 ที่ทำงานอยู่! หมายเลขปกติคือ 8 ของกระบวนการเหล่านี้ 68 มี WCHAN ของ get_re, 82 มี WCHAN เป็น unix_s และ 1 มี WCHAN ของ poll_s ฉันไม่รู้ว่ามันหมายถึงอะไร

คำสั่ง ps รันเมื่อ 3:26 คืนนี้และคุณจะเห็นว่ากระบวนการ apache ส่วนใหญ่เริ่มต้นภายในไม่กี่นาทีของเวลานั้น

สิ่งที่เกิดขึ้นในภายหลังคืองาน cron ต่างๆที่ทำงานบนเซิร์ฟเวอร์พะเนินเทินทึก น่าจะเป็นเพราะพวกเขาไม่สามารถเข้าถึง MySQL อีกหนึ่งชั่วโมงต่อมาคำสั่ง ps จะแสดงกระบวนการ apache เดียวกันกับ PID เดียวกัน แต่มีการเพิ่มงาน cron จำนวนหนึ่งที่รัน PHP เข้าไปในรายการซึ่งน่าจะรอ MySQL อยู่

พฤติกรรมนี้ส่งเสียงระฆังให้คุณหรือไม่? คุณมีความคิดใด ๆ หรือไม่ว่าปัญหาอาจเกิดขึ้นหรือฉันจะตรวจสอบเพิ่มเติมได้อย่างไร

แก้ไข 14 พฤศจิกายน 2556:

เมื่อปัญหาเริ่มขึ้นสิ่งต่าง ๆ จะถูกเขียนลงในบันทึก mysql นี่คือบรรทัดแรกจากบันทึก:

InnoDB: Warning: a long semaphore wait:
--Thread 140450733872896 has waited at dict0dict.c line 759 for 257.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
InnoDB: Warning: a long semaphore wait:
--Thread 140450751735552 has waited at dict0dict.c line 759 for 308.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
InnoDB: ###### Starts InnoDB Monitor for 30 secs to print diagnostic info:
InnoDB: Pending preads 0, pwrites 0
InnoDB: ###### Diagnostic info printed to the standard error stream
InnoDB: Warning: a long semaphore wait:
--Thread 140450733872896 has waited at dict0dict.c line 759 for 341.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
InnoDB: Warning: a long semaphore wait:
--Thread 140450751735552 has waited at dict0dict.c line 759 for 407.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
InnoDB: ###### Starts InnoDB Monitor for 30 secs to print diagnostic info:
InnoDB: Pending preads 0, pwrites 0

=====================================
131114 20:11:44 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 3 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 45330 1_second, 45308 sleeps, 4112 10_second, 4353 background, 4349 flush
srv_master_thread log flush and writes: 46570
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 8091, signal count 5009
--Thread 140450733872896 has waited at dict0dict.c line 759 for 435.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
--Thread 140450751735552 has waited at dict0dict.c line 759 for 435.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
--Thread 140450762536704 has waited at row0purge.c line 680 for 101.00 seconds the semaphore:
S-lock on RW-latch at 0x7fbd571e9d60 created in file dict0dict.c line 729
a writer (thread id 140450747320064) has reserved it in mode  exclusive
number of readers 0, waiters flag 1, lock_word: 0
Last time read locked in file row0purge.c line 680
Last time write locked in file /build/buildd/mysql-5.5-5.5.31/storage/innobase/row/row0mysql.c line 3153
--Thread 140450741298944 has waited at dict0dict.c line 759 for 229.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
--Thread 140450743305984 has waited at dict0dict.c line 759 for 28.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
--Thread 140450748122880 has waited at dict0dict.c line 759 for 2.00 seconds the semaphore:
Mutex at 0x7fbd58f8d4c8 created file dict0dict.c line 716, lock var 1
waiters flag 1
Mutex spin waits 2044, rounds 95010, OS waits 3074
RW-shared spins 4025, rounds 123141, OS waits 4093
RW-excl spins 298, rounds 27978, OS waits 894
Spin rounds per wait: 46.48 mutex, 30.59 RW-shared, 93.89 RW-excl
------------
TRANSACTIONS
------------
Trx id counter 13B2C77
Purge done for trx's n:o < 13B2C50 undo n:o < 0
History list length 2208
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0, not started
InnoDB: ###### Diagnostic info printed to the standard error stream
MySQL thread id 23554, OS thread handle 0x7fbd3ce70700, query id 2153806 localhost 3bmoodle_bol checking permissions
DROP TABLE IF EXISTS `bol_bible_refs`
---TRANSACTION 13B2C61, not started
mysql tables in use 1, locked 0
MySQL thread id 23552, OS thread handle 0x7fbd3d2a6700, query id 2153830 localhost 3bmoodle_3bh
SELECT value FROM mdl_config_plugins WHERE plugin = 'qtype_randomsamatch' AND name = 'version'
---TRANSACTION 13B2C07, not started
MySQL thread id 23550, OS thread handle 0x7fbd3d42e700, query id 2153732 localhost 3bmoodle_www
---TRANSACTION 13B2B7D, not started
MySQL thread id 23548, OS thread handle 0x7fbd562d5700, query id 2153450 localhost edbi_new
---TRANSACTION 13B2A8C, not started
MySQL thread id 23525, OS thread handle 0x7fbd500ab700, query id 2153055 localhost 3bmoodle_bh

คำตอบ:


1

ที่นี่ฉันเดาว่าการตีความบันทึกเป็นอย่างที่ฉันสามารถทำได้ในขณะที่ยังคาดการณ์เล็กน้อย:

  • บางสิ่ง (อาจเกี่ยวข้องกับฮาร์ดแวร์แม้ว่าอาจเป็นข้อผิดพลาดของซอฟต์แวร์หรือระบบไฟล์เสียหาย) เป็นสาเหตุให้ MySQL daemon หยุดชะงักพยายามทำการค้นหาให้สมบูรณ์
  • คุณกำลังเรียกใช้ MPM "prefork" ของ Apache (โมดูลประมวลผลหลายทาง) ( นี่เป็นการคาดเดา ) ซึ่งหมายความว่าคุณจะได้รับหนึ่งกระบวนการ Apache สำหรับแต่ละคำขอ HTTP พร้อมกัน ดังนั้นคุณจะได้รับคำขอพร้อมกันจำนวนมาก ( a laDDoS) หรือคุณจะได้รับคำขอไม่กี่ครั้งเมื่อเวลาผ่านไป แต่คำขอเหล่านั้นยังไม่เสร็จเพราะรหัสบางอย่างในโมดูล Apache (อาจ mod_php หรือ CGI หรือบางสิ่ง) เป็นไคลเอนต์ MySQL และกำลังโทรเข้าสู่ MySQL กำลังทำอยู่ แบบสอบถามที่ปรับปรุงบางอย่าง แบบสอบถามนั้น "หยุด" เนื่องจากการหยุดชะงักดังกล่าวใน MySQL ดังนั้น MySQL จะไม่ตอบกลับรหัสของคุณดังนั้นรหัสของคุณจะไม่เสร็จสิ้นการร้องขอ HTTP ดังนั้น Apache จะช่วยให้การเชื่อมต่อยังคงอยู่กับเว็บไคลเอ็นต์ดังนั้น Apache จะประมวลผลซ้อนกัน คุณอาจสังเกตจากหน้าเว็บว่าเซิร์ฟเวอร์ใช้เวลานานมากในการตอบคำขอ HTTP เพื่อดึงข้อมูลบางหน้าและอาจไม่เคยตอบกลับเลยและหมดเวลาแล้ว
  • งาน cron ที่เกี่ยวข้องกับ MySQL กำลังรวบรวมด้วยเหตุผลที่คล้ายกันกับกระบวนการ Apache

เมื่อฉันมีปัญหาแปลก ๆ เช่นนี้ฉันชอบที่จะ "ปอกหัวหอมด้านในออก" ซึ่งเป็นคำอุปมาของฉันสำหรับความคิดที่ว่า "หัว" ชั้นในของหัวหอมเป็นสิ่งที่ระดับต่ำกว่าและชั้นนอกของหัวหอมคือ สิ่งที่ระดับสูงขึ้นอยู่กับสิ่งที่ระดับต่ำกว่า ดังนั้นจากด้านในถึงด้านนอกเรามีสแต็ก (ส่วนใหญ่) แบบคร่าวๆจากด้านในสู่ด้านนอก:

  • ฮาร์ดแวร์
  • เคอร์เนลระบบปฏิบัติการและไดรเวอร์การจัดการกระบวนการตัวกำหนดเวลางาน ฯลฯ
  • ระบบแฟ้ม
  • C library, ไลบรารีระดับต่ำอื่น ๆ ที่ใช้รูทีน TCP / IP ที่ด้านบนของเคอร์เนล ABI
  • เซิร์ฟเวอร์ฐานข้อมูล
  • การกำหนดค่าผู้ใช้ (การแก้ปัญหา DNS /etc/hosts, ฯลฯ )
  • เว็บเซิร์ฟเวอร์ของคุณ (Apache)
  • เว็บโค้ดฝั่งเซิร์ฟเวอร์และ HTML ของคุณ
  • เว็บส่วนหน้า

ดังนั้นเรามาดูวิธีการหยุดชะงักที่ชัดเจนในแต่ละชั้นเหล่านั้น:

  • ฮาร์ดแวร์: ก่อนอื่นทำการทดสอบ RAM และเรียกใช้สิ่งที่ต้องการsmartctlและตรวจสอบว่า SMART คิดว่าดิสก์ของคุณตกลงหรือไม่ หากคุณเห็นสัญญาณของความล้มเหลวของฮาร์ดแวร์นั่นน่าจะเป็นผู้ร้าย

  • เคอร์เนลระบบปฏิบัติการ: ตรวจสอบdmesgหาใด ๆWARNINGหรือBUGหรือOOPSเส้นซึ่งอาจบ่งบอกถึงข้อผิดพลาดในรุ่นเคอร์เนลที่คุณกำลังใช้หรืออาจเป็นหนึ่งในไดรเวอร์ของคุณ แม้เหนือคำเตือนและข้อบกพร่องการอ่านdmesgโดยทั่วไปจะมีประโยชน์ มองหาสิ่งผิดปกติและหากมีข้อสงสัยให้ google เป็นข้อความแสดงข้อผิดพลาดลบรายละเอียดเฉพาะของระบบเช่นที่อยู่ IP

  • ระบบไฟล์: รันการอ่านอย่างเดียวfsckบนระบบไฟล์ที่มีฐานข้อมูล MySQL อยู่ หากคุณไม่แน่ใจว่า/varเป็นจุดเริ่มต้นที่ดี - ค้นหาว่า/varเมาท์ใช้ที่sudo mountใดจากนั้นจึงfsckเรียกใช้fsckคำสั่งที่เหมาะสมเพื่อระบุการตรวจสอบสติแบบอ่านอย่างเดียว

  • ไลบรารี C: บางครั้งคุณอาจพบข้อผิดพลาดในมิดเดิลแวร์ระดับต่ำของ userspace เช่นไลบรารี C ถึงแม้ว่ามันจะค่อนข้างผิดปกติเว้นแต่ว่าคุณได้รวบรวมสิ่งต่างๆมากมาย เวอร์ชั่นไม่ตรงกันมีแนวโน้มมากขึ้น แต่ถ้าคุณกำลังเรียกใช้แพคเกจจากที่เก็บ Ubuntu ของ vanilla นั่นก็ไม่น่าจะเป็นผู้ร้าย

  • เซิร์ฟเวอร์ฐานข้อมูล: เป็นไปได้ทั้งหมดที่ MySQL มีข้อผิดพลาดในการจัดการไฟล์ฐานข้อมูลและมีการเขียนข้อมูลที่เสียหายไปยังไฟล์ DB บนดิสก์ของคุณโดยไม่ตั้งใจ อาจเป็นเช่นนั้นแม้ว่าฮาร์ดแวร์ฮาร์ดดิสก์ของคุณจะดีและระบบไฟล์ก็ตรวจสอบได้ดี อาจจะมีสภาพการแข่งขันตัวอย่างเช่นบางทีแม้แต่หนึ่งที่ได้รับการแก้ไขตั้งแต่เวลาที่อูบุนตู 12.04 ได้รับการปล่อยตัว (หรืออาจสภาพการแข่งขันยังคงมีอยู่และคุณเพียงแค่มันโชคร้ายที่ได้ตีมันด้วยภาระงานของคุณ) สิ่งที่ต้องตรวจสอบที่นี่คือการลองใช้เทคนิคเล็กน้อยตามที่แนะนำไว้ที่นี่ซึ่งโดยพื้นฐานแล้วเกี่ยวข้องกับการเขียนตารางทั้งหมดของคุณไปยังไฟล์ SQL จากนั้นนำเข้าอีกครั้ง หากไฟล์ข้อมูลสำหรับฐานข้อมูลถูกแฮชแย่มากคุณอาจต้องลบฐานข้อมูลและเริ่มต้นใหม่อีกครั้งตั้งแต่เริ่มต้น ต้องระมัดระวังกับว่าเป็นคุณอาจสูญเสียสิทธิ์ ฯลฯ นอกจากนี้ถ้า DB ของคุณอยู่ในสถานะที่เสียหาย, SQL ที่ได้รับการส่งออกอาจไม่ประกอบด้วยข้อมูลทั้งหมดของคุณดังนั้นถ้าคุณสำรองไฟล์ฐานข้อมูลเดิมของคุณคุณอาจสูญเสียข้อมูลที่ทำ นี้ ดังนั้นระวัง

  • การกำหนดค่าผู้ใช้: ฉันไม่สามารถคิดได้ว่าจะเกิดอะไรขึ้นกับเลเยอร์นี้ซึ่งจะทำให้เกิดปัญหา "สัญญาณ" ที่คุณรายงานในบันทึก mysqld ของคุณ อาจเป็นไปได้ที่จะถือว่าเลเยอร์นี้ทำงานอย่างถูกต้อง

  • เว็บเซิร์ฟเวอร์: หาก Apache ผิดพลาดคุณจะไม่เห็นความผิดปกติใด ๆ จากcronสคริปต์ของคุณและคนธรรมดา/etc/init.d/apache2 restartจะแก้ไขปัญหาได้อย่างสมบูรณ์ มันไม่ใช่อย่างนั้นใช่ไหม?

  • รหัสของคุณ: เมื่อพิจารณาถึงผลลัพธ์ของบันทึกที่คุณโพสต์จนถึงตอนนี้ดูเหมือนว่าไม่น่าจะเป็นผู้ร้ายได้เว้นแต่ว่าคุณกำลังเลี่ยง MySQL และเขียนโดยตรงไปยังฐานข้อมูลหรือทำ I / O ระดับบล็อกบนดิสก์ดิบ อุปกรณ์ข้ามระบบไฟล์หรือสิ่งที่บ้าอย่างเท่าเทียมกัน

  • ส่วนหน้าของเว็บ: ใช่นี่ไม่น่าจะเป็นปัญหาเลยตัดสินจากบันทึก

นั่นเป็นการเดินที่ชัดเจนและทั่วถึง ฉันลอง smartctl ซึ่งไม่พบปัญหาใด ๆ ฉันคิดว่าเซิร์ฟเวอร์ฐานข้อมูลที่คุณพูดถึงมีแนวโน้มที่จะเป็นผู้ร้ายในกรณีของฉัน อย่างไรก็ตามฉันจะมอบรางวัลให้คุณทันทีที่ระบบอนุญาตให้ฉัน ขอขอบคุณ.
oz1cz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.