/ / Apache / MySQL Server-Blöcke - Ubuntu, MySQL, Apache-http-Server

Apache / MySQL-Server-Blöcke - Ubuntu, MySQL, Apache-http-Server

Ich verwalte einen Server mit Ubuntu 12.04.

In den letzten Wochen hat sich der Server schlecht benommen, und mir fällt nichts Wichtiges ein, das sich geändert hat.

Dies ist das Muster: Der Server meldet MySQL-Fehler. Sie können eine oder mehrere der folgenden sein:

  • ADODB-Fehler: Keine Verbindung zum MySQL-Server beim "Warten auf das erste Kommunikationspaket", Systemfehler: 95
  • mysqli :: mysqli (): (HY000 / 2013): Keine Verbindung zum MySQL-Server beim "Senden von Authentifizierungsinformationen", Systemfehler: 32
  • zu viele Verbindungen

Dies geschieht normalerweise (aber nicht immer) nachts, und schließlich ist der Server vollständig unzugänglich, und ich kann ihn nur brutal neu starten.

Ich habe jetzt einen Cron-Job hinzugefügt, der alle 15 Minuten "ps -elf" ausführt, um zu zeigen, was vor sich geht.

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

Wie Sie sehen, gibt es 151 Apache2-ProzesseLaufen! Die normale Zahl ist 8. Von diesen Prozessen haben 68 ein WCHAN von get_re, 82 ein WCHAN von unix_s und 1 ein WCHAN von poll_s. Ich weiß nicht, was das bedeutet.

Der Befehl ps wurde heute Abend um 3:26 Uhr ausgeführt, und Sie können sehen, dass die überwiegende Mehrheit der Apache-Prozesse innerhalb weniger Minuten nach dieser Zeit gestartet wurde.

Was später passiert, sind die verschiedenen Cronjobs, dielaufen auf dem Server stapeln. Vermutlich, weil sie nicht auf MySQL zugreifen können. Eine Stunde später zeigt der Befehl ps dieselben Apache-Prozesse mit denselben PIDs an, aber der Liste wurden einige Cron-Jobs hinzugefügt, die PHP ausführen und vermutlich auf MySQL warten.

Läutet dieses Verhalten einen von Ihnen an? Haben Sie eine Idee, wo das Problem liegen könnte oder wie ich es weiter untersuchen könnte?

EDIT 14. November 2013:

Wenn Probleme auftreten, werden die Dinge in das MySQL-Protokoll geschrieben. Hier sind die ersten Zeilen aus dem Protokoll:

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

Antworten:

1 für Antwort № 1

Hier ist meins vermutenNachdem ich die Protokolle so wörtlich wie möglich interpretiert und gleichzeitig ein wenig extrapoliert habe:

  • etwas (Wahrscheinlich hardwarebezogen, obwohl dies ein Software-Fehler oder eine Beschädigung des Dateisystems sein könnte) führt dazu, dass der MySQL-Dämon beim Versuch, eine Aktualisierungsabfrage abzuschließen, einen Deadlock ausführt.
  • Sie verwenden Apaches "prefork" MPM (Multi-Processing Module) (Das ist eine Vermutung). Dies bedeutet, dass Sie für jede gleichzeitige HTTP-Anforderung einen Apache-Prozess erhalten. Sie erhalten also entweder eine Menge gleichzeitiger Anfragen (a la ein DDoS), oder Sie erhalten ein paar AnfragenIm Laufe der Zeit werden diese Anforderungen jedoch nicht vollständig ausgeführt, da ein Teil des Codes in einem Apache-Modul (z. B. mod_php oder CGI) ein MySQL-Client ist und bei einem Aufruf von MySQL eine Aktualisierungsabfrage durchführt. Diese Abfrage "hängt" aufgrund des oben erwähnten Deadlocks in MySQL, sodass MySQL niemals auf Ihren Code antwortet, sodass Ihr Code die HTTP-Anforderung niemals abschließt, sodass Apache die Verbindung zum Web-Client aufrecht erhält und die Apache-Prozesse gestapelt werden. Sie werden wahrscheinlich auch im Web-Front-End feststellen, dass es sehr lange dauert, bis der Server auf HTTP-Anforderungen zum Abrufen bestimmter Seiten antwortet. Vielleicht antwortet er überhaupt nicht und es tritt nur eine Zeitüberschreitung auf.
  • Die Cron-Jobs, die MySQL betreffen, werden aus einem ähnlichen Grund wie die Apache-Prozesse gestapelt.

Wenn ich so ein komisches Problem habe, mag ich es"Schälen Sie die Zwiebel von innen nach außen", das ist meine Metapher für die Idee, dass die "inneren" Schichten der Zwiebel untergeordnete Dinge sind und die äußeren Schichten der Zwiebel übergeordnete Dinge sind, die von den untergeordneten Dingen abhängen . Also, von innen nach außen haben wir ungefähr diesen (stark vereinfachten) Stapel, von innen nach außen:

  • Hardware
  • Betriebssystemkernel und Treiber, Prozessverwaltung, Taskplaner usw
  • Dateisystem
  • C-Bibliothek, andere Low-Level-Bibliotheken, die TCP / IP-Routinen über der Kernel-ABI implementieren
  • Datenbankserver
  • Userspace-Konfiguration (DNS-Auflösung, /etc/hosts, etc.)
  • Ihr Webserver (Apache)
  • Ihr serverseitiger Webcode und HTML
  • Das Web-Frontend

Schauen wir uns also an, wie Sie sich einem scheinbaren Deadlock auf jeder dieser Ebenen nähern können:

  • Hardware: Führen Sie zunächst einen RAM-Test durch und führen Sie so etwas wie aus smartctl und prüfen Sie, ob SMART der Meinung ist, dass Ihre Festplatten in Ordnung sind. Wenn Sie Anzeichen eines Hardwareausfalls sehen, ist dies wahrscheinlich der Schuldige.

  • Betriebssystemkernel: Überprüfen dmesg für jeden WARNING oder BUG oder OOPS Zeilen, die auf einen Fehler in der von Ihnen verwendeten Kernel - Version oder auf einen Ihrer Treiber hinweisen können dmesg im Allgemeinen kann nützlich sein; Suchen Sie nach Anomalien und googeln Sie im Zweifelsfall die Fehlermeldung und entfernen Sie alle systemspezifischen Details wie IP-Adressen.

  • Dateisystem: Schreibgeschützt ausführen fsck auf dem Dateisystem, in dem sich die MySQL-Datenbank befindet. Wenn Sie nicht sicher sind, /var ist ein guter Ausgangspunkt - finden Sie heraus, wo /var wird montiert mit sudo mount, dann fsck das Volumen, läuft die entsprechende fsck Befehl zum Anzeigen einer schreibgeschützten Überprüfung.

  • C Bibliothek: Gelegentlich kann es vorkommen, dass in der Middleware auf niedriger Ebene des Userspace ein Fehler auftritt, wie in der C-Bibliothek. Dies ist jedoch eher ungewöhnlich, es sei denn, Sie haben eine Menge Dinge benutzerdefiniert kompiliert die Vanille-Ubuntu-Repositories, das dürfte auch nicht der Schuldige sein.

  • Datenbankserver: Es ist durchaus möglich, dass MySQL einen Fehler bei der Verwaltung seiner Datenbankdateien hat und versehentlich beschädigte Daten in Ihre Datenbankdatei auf der Festplatte geschrieben hat. Dies kann der Fall sein, auch wenn Ihre Festplattenhardware in Ordnung ist und das Dateisystem auscheckt Es könnte zum Beispiel eine Racebedingung geben, vielleicht sogar eine, die seit der Veröffentlichung von Ubuntu 12.04 behoben wurde (oder die Racebedingung besteht immer noch, und Sie sind gerecht Ja wirklich Pech gehabt, es mit Ihrer Arbeitsbelastung getroffen zu haben). Hier sollten Sie ein paar Tricks ausprobieren Hier, was im Wesentlichen das Schreiben aller Ihrer beinhaltetTabellen in SQL-Dateien ausgeben und anschließend erneut importieren. Wenn die Datendatei für die Datenbank sehr stark ausgelastet ist, müssen Sie die Datenbank möglicherweise löschen und von Grund auf neu initialisieren. Gehen Sie dabei vorsichtig vor, da Sie möglicherweise Berechtigungen verlieren usw. Befindet sich Ihre Datenbank in einem beschädigten Zustand, enthält die SQL, die ausgegeben wird, möglicherweise nicht alle Ihre Daten. Sie könnten dabei Daten verlieren. Also sei vorsichtig.

  • Userspace-Konfiguration: Ich kann mir nicht viel vorstellen, was auf dieser speziellen Ebene schief gehen würde und das "Semaphor" -Problem verursachen würde, das Sie in Ihren mysqld-Protokollen melden. Es ist wahrscheinlich davon auszugehen, dass diese Schicht ordnungsgemäß funktioniert.

  • Webserver: Wäre Apache schuld, dann würden Sie von Ihrem kein anormales Verhalten bemerken cron Skripte und eine einfache /etc/init.d/apache2 restart würde das Problem komplett beheben. Das ist aber nicht der Fall, oder?

  • Dein Code: In Anbetracht der Ausgabe der Protokolle, die Sie bisher gepostet haben, ist dies höchst unwahrscheinlich, es sei denn, Sie umgehen MySQL und schreiben direkt in die Datenbank oder führen E / A-Vorgänge auf Blockebene auf dem Raw-Plattengerät unter Umgehung des Dateisystem oder so etwas Verrücktes.

  • Das Web-Front-End: Ja, das ist wahrscheinlich nicht das Problem, gemessen an den Protokollen.

Verwandte Fragen
Bemerkungen
Einen Kommentar hinzufügen