Ungewöhnliche CPU Auslastung



Azurel

Member
Hi. Ich finde nicht raus was die seit ein paar Tagen ungewöhnliche CPU und Connection Statistik bewirkt. Siehe Anhang. Wie man dort sieht ist der Prozess um "mysql" auch ungewöhnlich hoch. Normal ist mysql bei 10-25% CPU und PHP ist normal so zwischen 20-35% CPU.

# free –m
total used free shared buffers cached
Mem: 32875488 29694640 3180848 0 1570836 23423748
-/+ buffers/cache: 4700056 28175432
Swap: 1023992 0 1023992

Das hier gibt mir nur "2" aus, daher kann das wohl kein DoS sein.
# netstat -n -p|grep SYN_REC | wc -l

Um sicherzugehen habe ich noch:
# netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
Show a list IP addresses and its number of connections that are connecting to port 80 on the server. Port 80 is used mainly by the HTTP protocol

Die letzten Zeilen sind:
15 66.249.64.*
16 2003
17 66.249.64.8
20 199.30.20.*
20 91.18.203.*
23 66.249.64.75
25 66.249.64.65
27 66.249.64.70
66 193.170.123.*


# netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
List the number of connections the IPs are making to the server using TCP or UDP protocol.
15 66.249.64.*
15 87.185.20.*
16 0.0.0.0
16 66.249.64.*
17 188.104.225.*
21 213.23.84.*
24 66.249.64.*
25 66.249.64.*
29 66.249.64.*
34 2003
36 2a02
202 127.0.0.1
2944 SERVER-IP
4195

Hat jemand einen Vorschlag wie ich rausbekomme was hier die hohe CPU verursacht und auch die Zeitweise ungewöhnliche Connection?

Ich habe einen Plesk 11.5.30#34 Server mit centOS 6.5.
 
Nicht blind Befehlszeilen per Copy&Paste versenken. Das hilft nicht!

Mit top kannst du dir ansehen, welche Prozesse die Last verursachen. netstat hilft dir, diese Prozesse bestehenden Netzwerkverbindungen zuzuordnen und ps kann dir im Detail anzeigen, wie die Prozesse aufgerufen wurden und in welchem Kontext sie laufen.

Code:
man top
man netstat
man ps

Zusammen mit den entsprechenden Log-Files solltest du herausfinden können, welche Seitenaufrufe die Last verursachen.
 
Meine Dateianhänge sind aus dem Startpost sind verschwunden.. daher in der Form noch mal:

http://picload.org/image/larrdda/topc.png

http://picload.org/image/larrclp/mrtgd.png

Also blind hacke ich die Befehle nicht in die Console. ;)
Allerdings kann ich mit der einen und anderen Anzeige wenig anfangen und das wird auch nicht im MAN erklärt (zumindest nichts gefunden). Zum Beispiel warum steht da die IP "0.0.0.0"?

@emerge
DAnke. Ich habe htop 1.0.1 installiert, aber mehr anzeigen tut das jetzt auch nicht, oder? Ich sehe jetzt welche CPU was macht, aber welche Prozesse RAM/CPU verwenden, sieht man ja auch in top. Nur das der Pfad dazu steht hilft jetzt ja nicht wesentlich weiter, oder? ^^
 
DAnke. Ich habe htop 1.0.1 installiert, aber mehr anzeigen tut das jetzt auch nicht, oder? Ich sehe jetzt welche CPU was macht, aber welche Prozesse RAM/CPU verwenden, sieht man ja auch in top. Nur das der Pfad dazu steht hilft jetzt ja nicht wesentlich weiter, oder? ^^

Sortiere doch mal nach CPU-Auslastung - dann stehen die Prozesse mit der höchsten Auslastung ganz oben (funktioniert allerdings nicht in der Baumansicht).
 
Das ist doch der Standard bei htop und top und ich sehe bisher nur das dort mysql und php prozesse laufen.

Es scheint das irgendwas Punkt 5Uhr passiert und dann die CPU ab und an bis Mittag ungewöhnlich hoch treibt.

http://picload.org/image/larpiol/mrtge.png

Per netstat finde ich denjenigen leider nicht.

Ich habe auch versucht die größte heutige access_log zu durchsuchen:

# cut -d " " -f 1 access_log | sort | uniq -c | sort -n | tail -10
11003 66.249.64.24
14954 213.23.84.*
15159 178.15.138.*
19244 141.8.147.18
30520 66.249.64.237
30791 66.249.64.232
30885 66.249.64.242
35110 66.249.64.3
35239 66.249.64.48
39060 66.249.64.8

Ich habe die ersten beiden Arcor IPs mal per Firewall geblockt. Wer soviele Seiten wie ein Suchbot aufruft ist schon mal kein Mensch. Mal abwarten ob sich was ändert. Aber was könnte man denn zwischenzeitlich noch tun?
 
Das Problem besteht leider immernoch:
MOD: Bilder bitte immer als Anhang. Danke!
(Ich musste jetzt CPU auf 400er Wert erhöhen, da wenn es die 300er überschreitet, den Wert auf 0 setzt.

Am Port 80 scheint das nicht zu liegen:
# netstat -plan | grep :80 | awk {'print $5'} | rev | cut -d: --complement -f1 | rev | sort | uniq -c | sort -nk 1
10 79.195.181.*
10 80.140.86.*
10 84.63.242.*
11 188.106.92.*
11 79.219.35.*
11 84.179.99.*
11 93.197.127.*
13 188.104.41.*
13 84.162.38.*
15 78.34.203.*
15 79.229.219.*
21 89.244.151.*
22 93.181.45.*
 

Attachments

  • martggau2t.png
    martggau2t.png
    25.7 KB · Views: 165
Last edited by a moderator:
Wenn du ein PHP-Script hast, welches entweder schwer rechnet oder in eine Endlosschleife gerät, reicht dir pro CPU-Kern genau ein Benutzer um das System vor die Wand zu fahren.
Findest du in den Error-Logs Erwähnungen von "Premature end of script headers" oder "max_execution_time" ?
 
Back
Top