phpbar.de logo

Mailinglisten-Archive

mySQL verbraucht zu viel CPU / sleep-Prozesse beenden nicht

mySQL verbraucht zu viel CPU / sleep-Prozesse beenden nicht

Ute Diestel mysql-de_(at)_lists.bttr.org
Sat, 26 Oct 2002 19:37:45 +0100


huhu...

wir hatte des gleiche auch schonmal.... es scheint 
damals ein Problem mit dem Speicher gewesen zu sein... 

man konnte sehen, wie der speicher immer weiter aufgebraucht wurde... 
während die prozesse hochgingen... und dann wenn nix mehr an speicher 
da is.... geht die load hoch (ev. was mit caching ??)

jedenfalls führte des teilweise dazu, dass man an den server 
überhaupt nicht mehr rankam  (suse-linux) und man tatsächlich mal
am linux des knöpfchen drücken mußte...

haben max_connections auf 80 gesetzt... und hab nun 
immer ca. 12-15 mysql-processe ... UND es bleibt jetzt alles im lot...
und die übertrieben load bis zum stillstand ist seitdem noch 
nicht wieder aufgetreten.. (inzwischen fast dreiviertel jahr)


die udeeeeeeee
-----------------
>Ich habe mysql_pconnect (steht überall als Empfehlung) gegen 
>mysql_connect und mysql_close ersetzt.
>Damit waren einige Probleme weg.
>
>Gruß, Guido Stepken
>
>Am Freitag den, 25. Oktober 2002, um 12:04, schrieb universe:
>
>> Hi,
>>
>> mySQL 3.23.49 auf Debian GNU/Linux 3.0 mit Kernel 2.4.19 auf einem Xeon
>> 2 Ghz (Single) CPU mit 2 GB DDR-RAM. Folgendes Problem stellt sich:
>>
>> Die mySQL-Prozesse beanspruchen immer zwischen 100%-200% CPU,
>> dementsprechend langsam wird das System und manche PHP-websites werden
>> erst nach 5-30 Sekunden ausgeliefert.
>>
>> Ich habe versucht mich an die Ursache heranzutasten:
>>
>> - "mysqladmin processlist" lieferte immer "Too many connections." Also
>> habe ich die max_connections testweise mal auf 500 gesetzt. Dann konnte
>> man beobachten, dass mehr und mehr Prozesse aufgebaut werden, sich aber
>> nicht wieder abbauen. Es handelte sich dabei immer um "Sleep"-Prozesse,
>> die praktisch ewig aufgebaut blieben. Nach ein paar Minuten waren die
>> 500 connections fast vollstaendig aufgebraucht. Die load average des
>> Systems lag dabei jenseits von 20 und die websites konnten demnach nicht
>> mehr abgerufen werden.
>>
>> - Testweise "wait_timeout" und "interactive_timeout" auf 60 Sekunden
>> gesetzt (default ist 8 Stunden). Das hat Abhilfe geschafft - die
>> "Sleep"-Prozesse wurden nach 60 Sekunden beendet und die max. Anzahl
>> aller mySQL-Prozesse lagen bei ca. 50 (gleichzeitig, inkl. Sleep).
>>
>> - Momentan stehen die o.g. timeouts bei nur 10 Sekunden. So konnte man
>> die load noch etwas senken. Momentan bewegt sich die load average
>> zwischen 3 und 6, manchmal auch mehr. "top" sagt mir, dass es immer
>> zwischen 2-10 mysqld-Prozesse (UNIX) gibt die jeweils irgendwas von 20%
>> und 99.9% von der CPU abhaben wollen. In diesem Zusammenhang gibt es
>> dann auch Apache-Prozesse die sich mit weniger (10%-30%) CPU zufrieden
>> geben.
>>
>> mySQL wird durch PHP 4.1.2 (Apache 1.3.26) angesteuert. Ich habe
>> "mysql.allow_persistent = Off" in der php.ini eingestellt, in der
>> Hoffnung damit die Sleep-Prozesse gaenzlich loszuwerden bzw. die load zu
>> senken.
>>
>> So wirklich weiss ich nach wie vor nicht wo das Problem ist. Der
>> PHP-Code ist mit zend encoded, man kann also schlecht sehen was die
>> PHP-scripts tatsaechlich machen.
>>
>> "mysqladmin status" liefert: Uptime: 848  Threads: 14  Questions: 9799
>> Slow queries: 25  Opens: 71  Flush tables: 1  Open tables: 64  Queries
>> per second avg: 11.555
>>
>> Die website ist schon relativ stark besucht - aber ich bin trotzdem der
>> Meinung dass diese Hardware damit locker auskommen muesste.
>>
>> Beispiel: die load is jetzt gerade bei 3. "mysqladmin processlist" zeigt
>> nur 6-12 Prozesse - 50% davon sind "Sleep".
>>
>> Hoert sich das ganze fuer euch eher nach einem Fehler in der
>> Programmierung an oder nach einer Fehlkonfiguration in mySQL (vielleicht
>> auch PHP?)? Wo kann ich mit der Suche nach dem Fehler weitermachen?
>>
>> Vielen Dank!
>>
>> Gruss,
>> Markus
>>
>>
>>
>>
>> --
>> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
>> -->>  http://www.4t2.com/mysql
>>
>
>-- 
>Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
>-->>  http://www.4t2.com/mysql 
>

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive