MySQL und sein Socket.....

Hallo zusammen,

ich hab da mal ein kleines Problem. Ich betreue einen Webserver und bin dort mittlerweile mit meinem Latein am Ende.
Der Webserver hostet ein Comunity-Script, auf dem sich i.d.R. zwischen 50 und 350 User zeitgleich aufhalten.

Hier ein paar Keyfeatures zu dem System:

- Debian Sarge (2.6.12.4)
- Apache2 (mpm_prefork)
- PHP4 (4.3.10-16)
- MySQL (4.1.11)

Dann noch ein Mailserver und etwas Monitoringkram (rrdtools, nagios_Client) und was man sonst noch so an Tools zum arbeiten brauch ;)

Mein Problem ist nun folgendes.

Solange die Useranzahl gering ist (< 250) ist die Maschiene sehr performant und die User sind glücklich. Aber in den Abendstunden wirds meist eng auf dem Server:

Ab 280 - 320 (je nachdem, wass die User halt tun) wird die Kiste zunächst recht langsam bis dann schließlich statt der Portalseite eine Fehlermeldung ausgibt:

Code:
Warning: mysql_connect(): Can't connect to local MySQL server through socket 
'/var/run/mysqld/mysqld.sock' (11) in  /var/www/virtual/website.tld/htdocs/portal/connect.php 
on line 73  Verbindung konnte nicht hergestellt werden!2002:Can't connect to local MySQL  
server through socket '/var/run/mysqld/mysqld.sock' (11)

Die Page wird dann für einige Sekunden (5-30) angezeigt und dann gehts wieder wie gewohnt weiter.

Wenn ich den Fehler gemeldet bekomme, und mir die Datei auf dem Server mal anschaue, sehe ich, dass die Socketdatei tatsächlich neu erstellt wurde:

Code:
hostname:~# ls -l /var/run/mysqld/mysqld.sock  
srwxrwxrwx  1 mysql mysql 0 2005-09-25 23:21 /var/run/mysqld/mysqld.sock

Lt meinen Recherchen taucht dieser Fehler i.d.R meist beim Starten von MySQL auf - nicht aber mitten im Betrieb....

Zwar wird (aus welchem Grund auch immer) die Socketdatei neu erstellt - der MySQL selbst läuft jedoch weiter....


Habt Ihr ne Idee, woran dies liegen kann???
 
mit was fuer optionen startest du deinen mysql (my.cnf und commandline-argumente)?
 
MySQL wir mit folgenden Argumenten gestartet:

Code:
/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock

Die my.cnf sieht wie folgt aus:

Code:
[client]
port		= 3306
socket	= /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket	= /var/run/mysqld/mysqld.sock
nice		= 0

[mysqld]
user		= mysql
pid-file	= /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port		= 3306
basedir	= /usr
datadir	= /var/lib/mysql
tmpdir	= /tmp
language	= /usr/share/mysql/english
skip-external-locking
set-variable    = max_connections=150
set-variable    = max_user_connections=150
set-variable    = connect_timeout=10
set-variable    = wait_timeout=10
set-variable    = interactive_timeout=10
old_passwords	= 1
bind-address	= 127.0.0.1
key_buffer		= 384M
max_allowed_packet	= 1M
thread_stack	= 128K
table_cache		= 512
sort_buffer		= 2M
query_cache_limit	= 1048576
query_cache_size  = 32M 
query_cache_type        = 1
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache = 8
log-error      	= /var/log/mysql.err
log-slow-queries	= /var/log/mysql/mysql-slow.log
max_binlog_size    = 104857600
skip-bdb

[mysqldump]
quick
quote-names
max_allowed_packet	= 16M

[isamchk]
key_buffer		= 16M
 
set-variable = max_connections=150
set-variable = max_user_connections=150
set-variable = connect_timeout=10
set-variable = wait_timeout=10
set-variable = interactive_timeout=10

sollte eigentlich ok sein (zumindest fuer ~300 user auf der hp).


schau mal nach eintraegen in "/var/log/mysql.err".
im apache error log wuerde ich auch mal nen blick reinwerfen. ev sagt der was von wegen limit und co.

wenn du den sql server via mysqld_safe startest, kann das mit dem neuen timestamp des sockets durchaus sein. dies bedeutet dann, dass der mysqld nen error hatte und neu gestartet wurde (da sollte dann was im logfile sein)
 
Aus dem Error-log geht leider nichts konkretes hervor.
Seid vorgestern ist das Problem auch nicht mehr aufgetretet.

Sobald ich mehr Infos habe, melde ich mich noch mal.


Danke schonmal für deine Mühem
 
Zurück
Oben