Seite 1 von 3
"max_connections" überschritten
Verfasst: 24.01.2007 22:32
von Seether
Ab und zu bemerke ich diesen Fehler auf meinem Board. Das Forum ist dann für wenige Minuten zu zu benutzen.
Meine User berichten mir, dass diese Fehlermeldung wohl "recht häufig" vorkäme.
Gibt es da etwas was ich machen kann. Benutze einen managed Server.
Der Gaia-Admin hat ja mal ein paar kleine Modifikationen gezeigt, die er an seinem Board vorgenommen hat. Würde das evtl was helfen? Oder hat das keinen Einfluss auf die Anzahl der Connections sondern nur auf die Abfragen?
S.
Verfasst: 25.01.2007 01:37
von Jensemann
Die Grundlegende Frage dabei ist immer ob die Verbindungsanzahl wirklich durch die Aktivität des Forums kommt, oder dadurch das Abfragen zu lange dauern. Wenn eine Abfrage schneller beendet werden kann, ist auch die Verbindung eher geschlossen und ein aufstauen von Verbindungen wird vermieden.
Wenn ich höre Managed-Server, ist mir allerdings schon beinah klar, wodurch man am meisten rausholen kann: Durch gescheite MySQL Einstellungen. Die meisten Managed-Server sind leider derart 0815-Konfiguriert das man sich fragt ob da das Upgrade fest in der Kostenkalkukation eingeplant ist. Inbesondere All-Inkl. ist mir da in der Vergangenheit übel aufgefallen.
Grundsätzlich ist immer zu sagen, bei MySQL Performanceproblemen erstmal ein optimize table durchführen. Das wird das Problem meist nicht lösen, aber man weiss damit zumindest, das ein ernsteres Problem vorliegt. Danach würde ich mal einige Einstellungen des MySQL-Servers hier posten (kannst du normalerweise mittels phpMyAdmin herausfinden). Insbesondere von Interesse ist wait_timeout und thread_cache. Ich vermute das der wait_timeout mal wieder unnötig hoch eingestellt, und der thread_cache, as usual, abgeschaltet ist. Wäre ja schlimm wenn ein vermieteter Server mal so schnell laufen würde wie er könnte

Verfasst: 25.01.2007 01:58
von Seether
Danke für die Eklärung!
Jensemann hat geschrieben:Inbesondere All-Inkl. ist mir da in der Vergangenheit übel aufgefallen.
Na Super
wait timeout Diese Sitzung: 30 Global: 30
table cache Diese Sitzung:256 Global:256
thread cache size Diese Sitzung:0 Global: 0
Soll ich noch andere Werte posten?
S.
Edit:
max connections 500 500
max user connections 25 25
Verfasst: 25.01.2007 02:04
von Jensemann
wait_timeout sieht gut aus, hat man dort offenbar dazu gelernt.
Aber thread_cache 0 ist mist. Sprech mal mit denen das die den thread_cache aktivieren. Der kann einiges bewirken.
Hast du einen PHP-Cache installiert? eAccelerator oder so? Falls möglich sollte der auch installiert sein. Erklärung folgt:
Warum haben langsame PHP Scripte was mit MySQL-Verbindungen zu tuen? Ganz einfach: Die meisten Scripte erstellen die Verbindung zu Beginn und schliessen sie am Ende. Läuft das Script nun langsamer als es könnte, zum Beispiel weil kein PHP Cache im Spiel ist, weil der Programmierer zu gerne schleifen programmiert, oder oder oder, ist die Verbindung zu lange offen, da sie ja erst geschlossen wird, wenn das Script so gut wie fertig ist.
Edit: Und lass die max_user_connections hochsetzen. Zu dem niedrigen Wert fällt mir echt gar nichts mehr ein. 80 oder so wäre gut, kommt immer ein wenig auf die Hardware an, aber bei 25 sind Probleme vorprogrammiert. Erst recht ohne die obigen Hinweise.
Verfasst: 25.01.2007 11:21
von larsneo
Inbesondere All-Inkl. ist mir da in der Vergangenheit übel aufgefallen.
jein. out-of-the-box sind die server sicherlich nicht das gelbe vom ei, sondern eher 'stangenware' - aber wenn man mit den jungs spricht, verträgt selbst ein xl aus der früheren angebotsstruktur durchaus einen heise-ddos.
Hast du einen PHP-Cache installiert? eAccelerator oder so? Falls möglich sollte der auch installiert sein.
nach meiner erfahrung ist gerade in bezug auf das phpbb der pecl:apc wesentlich besser und stabiler als der eaccelerator und wäre von daher mein tipp zur beschleunigung. darüberhinaus helfen bekanntermassen modsecurity und eine spidertrap um unerwünschten traffic komplett zu blocken.
Verfasst: 28.01.2007 14:43
von Seether
Danke für eure Antworten.
Auf welchen Wert sollte ich den thread_cache_size einstellen lassen?
S.
Verfasst: 28.01.2007 17:24
von Jensemann
Seether hat geschrieben:Danke für eure Antworten.
Auf welchen Wert sollte ich den thread_cache_size einstellen lassen?
40 ist meist ein guter Wert.
Verfasst: 02.03.2007 10:53
von offroad4fun
hi!
ich darf mich da mal anhängen:
hab ebenfalls das problem, dass meine anzhal der verbindungen zu hoch ist ...
Warning: mysql_connect(): Too many connections in /****db/mysql4.php on line 48
jedoch weigert sich mein provider die max-connections einstellung raufzusetzten (derzeit = 100)
kann ich da jetzt durch andere einstellungen noch was rausholen - oder soll ich mich gleich nach einem neuen provider umschauen ..
ich setz euch hier gleich mal alle einstellungen rein, da ich nicht wirklich weiss - welche jetzt alle in frage kommen:
Code: Alles auswählen
Variable Wert für diese Sitzung / Globaler Wert
back log 50
basedir /usr/
binlog cache size 32.768
bulk insert buffer size 8.388.608
character set client utf8
(Globaler Wert) latin1
character set connection utf8
(Globaler Wert) latin1
character set database latin1
character set results utf8
(Globaler Wert) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Globaler Wert) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
concurrent insert ON
connect timeout 5
datadir /var/lib/mysql/
date format %Y-%m-%d
datetime format %Y-%m-%d %H:%i:%s
default week format 0
delay key write ON
delayed insert limit 100
delayed insert timeout 300
delayed queue size 1.000
expire logs days 0
flush OFF
flush time 0
ft boolean syntax + -><()~*:""&|
ft max word len 84
ft min word len 4
ft query expansion limit 20
ft stopword file (built-in)
group concat max len 1.024
have archive NO
have bdb NO
have compress YES
have crypt YES
have csv NO
have example engine NO
have geometry YES
have innodb YES
have isam YES
have ndbcluster NO
have openssl NO
have query cache YES
have raid NO
have rtree keys YES
have symlink YES
init connect
init file
init slave
innodb additional mem pool size 1.048.576
innodb autoextend increment 8
innodb buffer pool awe mem mb 0
innodb buffer pool size 8.388.608
innodb data file path ibdata1:10M:autoextend
innodb data home dir
innodb fast shutdown ON
innodb file io threads 4
innodb file per table OFF
innodb flush log at trx commit 1
innodb flush method
innodb force recovery 0
innodb lock wait timeout 50
innodb locks unsafe for binlog OFF
innodb log arch dir
innodb log archive OFF
innodb log buffer size 1.048.576
innodb log file size 5.242.880
innodb log files in group 2
innodb log group home dir ./
innodb max dirty pages pct 90
innodb max purge lag 0
innodb mirrored log groups 1
innodb open files 300
innodb table locks ON
innodb thread concurrency 8
interactive timeout 28.800
join buffer size 131.072
key buffer size 16.777.216
key cache age threshold 300
key cache block size 1.024
key cache division limit 100
language /usr/share/mysql/english/
large files support ON
license GPL
local infile OFF
locked in memory OFF
log OFF
log bin OFF
log error
log slave updates OFF
log slow queries OFF
log update OFF
log warnings 1
long query time 10
low priority updates OFF
lower case file system OFF
lower case table names 0
max allowed packet 1.047.552
max binlog cache size 18.446.744.073.709.552.000
max binlog size 1.073.741.824
max connect errors 10
max connections 100
max delayed threads 20
max error count 64
max heap table size 16.777.216
max insert delayed threads 20
max join size 18.446.744.073.709.552.000
max length for sort data 1.024
max relay log size 0
max seeks for key 18.446.744.073.709.552.000
max sort length 1.024
max tmp tables 32
max user connections 0
max write lock count 18.446.744.073.709.552.000
myisam data pointer size 4
myisam max extra sort file size 2.147.483.648
myisam max sort file size 9.223.372.036.854.776.000
myisam recover options OFF
myisam repair threads 1
myisam sort buffer size 8.388.608
net buffer length 8.192
net read timeout 30
net retry count 10
net write timeout 60
new OFF
old passwords OFF
open files limit 1.024
pid file /var/lib/mysql/mysqld.pid
port 3.306
preload buffer size 32.768
protocol version 10
query alloc block size 8.192
query cache limit 1.048.576
query cache min res unit 4.096
query cache size 0
query cache type ON
query cache wlock invalidate OFF
query prealloc size 8.192
range alloc block size 2.048
read buffer size 258.048
read only OFF
read rnd buffer size 520.192
relay log purge ON
rpl recovery rank 0
secure auth OFF
server id 1
skip external locking ON
skip networking OFF
skip show database OFF
slave net timeout 3.600
slow launch time 2
socket /var/lib/mysql/mysql.sock
sort buffer size 524.280
sql mode
storage engine MyISAM
sync binlog 0
sync replication 0
sync replication slave id 0
sync replication timeout 0
sync frm ON
system time zone CET
table cache 64
table type MyISAM
thread cache size 0
thread stack 196.608
time format %H:%i:%s
time zone SYSTEM
tmp table size 33.554.432
tmpdir
transaction alloc block size 8.192
transaction prealloc size 4.096
tx isolation REPEATABLE-READ
version 4.1.10a
version comment SUSE MySQL RPM
version compile machine x86_64
version compile os suse-linux
wait timeout 28.800
DANKE
lg thomas
Verfasst: 02.03.2007 12:45
von Jensemann
offroad4fun hat geschrieben:hi!
ich darf mich da mal anhängen:
Du darfst nicht nur anhängen, du darfst auch die anderen Posts in diesem Thread lesen. Dann wäre dir aufgefallen, das dein wait_timeout viel zu hoch ist.
Eine max_connections von 100 ist übrigens vollkommen ok, da würde ich mich bei normaler Hardware auch weigern diese hochzusetzen.
Verfasst: 02.03.2007 12:50
von offroad4fun
hi!
danke ...
das mit der wait timeout hab ich gelesen ...
-> 28.800
ich bin von 28-komma-800 ausgegangen ... und oben war 30 ok
-> soll das 28-tausend heissen ???
?????
das wär ja der tausendfache wert??