PDA

Bekijk Volledige Versie : Server load, apache +mysql restart noodzakelijk



FunnyMedia
24/12/12, 20:15
Ik zie regelmatig dat mijn server erg traag is en mysql bijna niet reageert.
Herstarten van mysql en Apache bied uitkomst maar is niet de oplossing.
Als ik naar TOP kijk zie ik niet veel bijzonders
Ik zie alleen PID: 1735 die veel energie vraag..

Iemand iets bijzonders te zien?

top - 20:11:52 up 30 min, 1 user, load average: 13.99, 15.89, 16.74
Tasks: 177 total, 1 running, 175 sleeping, 1 stopped, 0 zombie
Cpu(s): 16.7%us, 8.3%sy, 0.0%ni, 35.9%id, 38.9%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 2196812k total, 726524k used, 1470288k free, 31096k buffers
Swap: 2342904k total, 0k used, 2342904k free, 323332k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1735 mysql 20 0 367m 106m 5472 S 43.5 5.0 14:35.89 mysqld
741 root 20 0 0 0 0 S 1.3 0.0 0:38.41 flush-253:0
4 root 20 0 0 0 0 S 1.0 0.0 0:19.12 ksoftirqd/0
326 root 20 0 0 0 0 D 1.0 0.0 0:14.96 jbd2/dm-0-8
8471 root 20 0 2700 1152 868 R 0.7 0.1 0:00.04 top
2467 root 20 0 653m 48m 3728 S 0.3 2.3 0:16.94 java
8387 apache 20 0 54380 14m 3848 S 0.3 0.7 0:00.05 httpd
1 root 20 0 2896 1344 1128 S 0.0 0.1 0:01.11 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.05 migration/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
9 root 20 0 0 0 0 S 0.0 0.0 0:02.31 ksoftirqd/1
10 root RT 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/1
11 root 20 0 0 0 0 S 0.0 0.0 0:00.16 events/0
12 root 20 0 0 0 0 S 0.0 0.0 0:00.24 events/1
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 sync_supers
19 root 20 0 0 0 0 S 0.0 0.0 0:00.01 bdi-default
20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0
21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/1
22 root 20 0 0 0 0 S 0.0 0.0 0:00.22 kblockd/0
23 root 20 0 0 0 0 S 0.0 0.0 0:03.01 kblockd/1
24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpid
25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify
26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_hotplug
27 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ata/0
28 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ata/1
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_aux
30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksuspend_usbd
31 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kseriod
33 root 20 0 0 0 0 S 0.0 0.0 0:00.00 md/0
34 root 20 0 0 0 0 S 0.0 0.0 0:00.00 md/1
35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 md_misc/0
36 root 20 0 0 0 0 S 0.0 0.0 0:00.00 md_misc/1
37 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
38 root 20 0 0 0 0 S 0.0 0.0 0:00.89 kswapd0
39 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd

SERVER DETAILS:
Processor Name Intel(R) Pentium(R) 4 CPU 3.06GHz
Vendor ID GenuineIntel
Processor Speed (MHz) 3066.590
Total Memory 2196812 kB
Free Memory 981576 kB
Total Swap Memory 2342904 kB
Free Swap Memory 2342904 kB

Mark17
24/12/12, 20:22
Welke MySQL queries draaien er op dat moment? Zie hiervoor de lijst met processen van MySQL.

Deze moet waarschijnlijk of veel lezen van de harde schijf of wegschrijven naar de harde schijf (mogelijk tijdelijke tabellen).

FunnyMedia
24/12/12, 20:35
In OP kan ik geen extra MYSQL processen vinden.
Op een of andere manier kan ik niet als da_admin inloggen op phpmyadmin

SF-Jeroen
24/12/12, 23:20
Inloggen via SSH en dan CLI MySQL als root? En dan even "SHOW FULL PROCESSLIST\G" en "SHOW ENGINE INNODB STATUS\G" uitvoeren.

Spyder01
24/12/12, 23:32
Wat ik zelf in dergelijke situaties doe is even een watch mysqladmin proc

Je ziet dan de processen elke 2 seconden verversen en kunt dan zien welke queries / users erg actief zijn.

bibawa
25/12/12, 12:09
Wat voor websites draai je op je server? Magento Shops? Die kunnen al eens intensief te keer gaan.
Bepaalde batch verwerkingen ?

Cakkie
25/12/12, 13:51
Je IO Wait zit vrij hoog, wat waarschijnlijk wil zeggen dat je MySQL al zijn data van schijf moet halen en niet uit memory (waar je blijkbaar nog wel wat van vrij hebt). My guess is dus dat je MySQL dus wel wat tuning kan gebruiken (bv naar caching toe en table/keyspaces in memory nemen). Kijk eens naar scriptjes zoals mysqltuner.pl, die kunnen je al een stap op weg helpen.

FunnyMedia
28/12/12, 15:00
Thanks voor de tip Cakkie maar ook hier heb ik niet echt veel bijzonders kunnen vinden.
Er is slechts 1 script wat vogal veel MySQL verkeer veroorzaakt (xxlspot.nl)
Verder draait er een chatscript (prochatrooms) en webcam script op de server maar die veroorzaken geen extreme load.
Verder zijn er geen scripts aanwezig op de server.
Is een privat colocated server dus ben goed op de hoogte wat er op de server gebeurt kwa installatie

Probleem lijkt overigens nu wel onder controle.
Ik zal in Directadmin dat er nogal veel HTTP activiteiten waren, soms wel tot 3GB.
Ik ben toen eens gaan spitten in IP verkeer en kwam nogal veel verkeer tegen waarvan ik zeker weet dat die niet on NL websites terecht komen.
Na het blokkeren van een aantal IP ranges is het de laatste 3 dagen "redelijk" rustig op de server en is de load ook weer "normaal"

Kortom, blokken van verkeer (Taiwan / china etc) helpt

dicktump
28/12/12, 15:44
Het kan hoe dan ook nooit kwaad om MySQL een beetje te tweaken. Als je veel InnoDB gebruikt helpt een InnoDB buffer pool wel veel als je I/O wait hoog is. En je kunt een query cache instellen, wat bij MyISAM ook nut heeft.

Het script dat Cakkie aanraadt, dus mysqltuner.pl, is daar altijd wel vrij handig voor :)