Mailinglisten-Archive |
Hallo! Leider ist das Thema hier etwas OT, aber es brennt wirklich. Seit zwei Tagen gibt es ein großes Problem mit unserer Datenbank. Vorher lief es zwar zeitweise recht langsam, aber es lief. Nun ist es so, daß lange Zeit die DB bei niedriger Last vor sich hin dümpelt. Dann hat man so um die 10-20 Threads. Schon nach wenigen Minuten steigt plötzlich die Anzahl der Threads immer höher und höher, bis sich teilweise sogar der mysqld selbst beendet! - Woran kann das liegen? - Hat schonmal jemand ähnliche Erfahrungen gemacht? - Wie kann man diesen Effekt verhindern? Schicht im Schacht ist, wenn die Anzahl der Threads auf 478 gestiegen ist. Dann werden keine neuen Threads mehr erzeugt und mysql ist stabil tot. Die Anzahl der max_connections sind auf 5000 (siehe unten). - Ist das überhaupt eine sinnvolle Einstellung? - Wieviele Threads kann mysql denn sinnvol handlen? Zur Zeit werden die Verbindungen über mysql_connect hergestellt. - Wird es etwas bringen, auf mysql_pconnect umzusteigen? - Falls ja, behebt man damit die Ursache oder nur das Symptom? weitere mögliche Fehlerursachen (?): - mysql-Installation (alte Version) - die Abfragen in den PHP-Progs - mysql_connect / mysql_pconnect >mysqladmin vers mysqladmin Ver 7.11 Distrib 3.22.27, for pc-linux-gnu on i686 TCX Datakonsult AB, by Monty Server version 3.22.27-log Protocol version 10 Connection Localhost via UNIX socket UNIX socket /tmp/mysql.sock Uptime: 8 min 4 sec Threads: 281 Questions: 10323 Slow queries: 0 Opens: 1424 Flush tables: 1 Open tables: 314 >mysqladmin vers mysqladmin Ver 7.11 Distrib 3.22.27, for pc-linux-gnu on i686 TCX Datakonsult AB, by Monty Server version 3.22.27-log Protocol version 10 Connection Localhost via UNIX socket UNIX socket /tmp/mysql.sock Uptime: 10 min 47 sec Threads: 478 Questions: 11620 Slow queries: 0 Opens: 2895 Flush tables: 1 Open tables: 535 >mysqladmin vers mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)' Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists! db:~ # mysql handy ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) mysql> show variables; +----------------------------+---------------------------+ | Variable_name | Value | +----------------------------+---------------------------+ | back_log | 1000 | | connect_timeout | 5 | | basedir | /usr/ | | datadir | /var/mysql/ | | delayed_insert_limit | 100 | | delayed_insert_timeout | 300 | | delayed_queue_size | 1000 | | join_buffer | 131072 | | flush_time | 0 | | key_buffer | 134213632 | | language | /usr/share/mysql/english/ | | log | ON | | log_update | OFF | | long_query_time | 10 | | low_priority_updates | OFF | | max_allowed_packet | 1047552 | | max_connections | 5000 | | max_connect_errors | 1000 | | max_delayed_insert_threads | 20 | | max_join_size | 4294967295 | | max_sort_length | 1024 | | net_buffer_length | 16384 | | pid_file | /var/mysql/db.pid | | port | 3306 | | protocol_version | 10 | | record_buffer | 131072 | | skip_locking | ON | | skip_networking | OFF | | socket | /tmp/mysql.sock | | sort_buffer | 2097144 | | table_cache | 64 | | thread_stack | 1048576 | | tmp_table_size | 67108856 | | tmpdir | /tmp/ | | version | 3.22.27-log | | wait_timeout | 15 | +----------------------------+---------------------------+ 36 rows in set (0.01 sec) Auszug aus der Prozeßliste -------------------------- 19744 ? S 0:00 sh /usr/bin/safe_mysqld --log --user=mysql --pid-file=/var/mysql/db.pid --datadir=/var/mysql -O wait_timeout=15 19756 ? SN 0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/mysql --skip-locking --log --user=mysql --pid-file=/var/mysql/db.pid --datadir=/var/mysql -O wait_timeout=15 19758 ? SN 0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/mysql --skip-locking --log --user=mysql --pid-file=/var/mysql/db.pid --datadir=/var/mysql -O wait_timeout=15 19759 ? SN 0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/mysql --skip-locking --log --user=mysql --pid-file=/var/mysql/db.pid --datadir=/var/mysql -O wait_timeout=15 Ich hoffe stark, daß es jemanden gibt, der mir hier weiterhelfen kann. Ich bin mit meinem Latein am Ende. Vielen Dank im Voraus, Sandor _______________________________________________________________________ 1.000.000 DM gewinnen - kostenlos tippen - http://millionenklick.web.de IhrName_(at)_web.de, 8MB Speicher, Verschluesselung - http://freemail.web.de
php::bar PHP Wiki - Listenarchive