Hi Leute,
der tompal hat mal wieder ein Problem:
Ich habe mehrere High-Traffic-Server (etwa 30TB Traffic auf 10 Server verteilt), welche eine ziemlich große Community hosten.
Für die Community wird der Standard LAMP-Stack verwendet, also Linux/Apache/MySQL/PHP. Alle Server sind über einen Switch miteinander verbunden (LAN und WAN durch VLANs getrennt, jeder Server hat ein Bein in jedem Netz), Datenbankserver und Webserver laufen natürlich auf unterschiedlichen Hosts.
Nun habe ich auf mehreren Servern das Problem, dass häufig MySQL-Verbindungen gedropped werden (zu Zeiten auf denen relativ viele Besucher auf den Seiten sind). Das Connectionlimit von MySQL ist definitiv kein Problem, dieses Limit wird erst gar nicht erreicht, eine Firewall o.ä. blockiert as far as i can see auch nichts. Die Server sind auch nicht ausgereizt, die Load ist eigentlich total niedrig.
In MySQL sieht das bei einem "show global status" wie folgt aus:
srv1 (DB-Server):
srv2 (Webserver):
Kernel ist schon relativ gut getuned mMn, folgende Settings hab ich schon gesetzt:
Trotzdem besteht das Problem noch. Auf dem Switch und den Netzwerkkarten sind keine Errors zu finden... Fällt jemandem von euch etwas ein, an was dies noch liegen könnte?
Viele Grüße,
Thomas
der tompal hat mal wieder ein Problem:
Ich habe mehrere High-Traffic-Server (etwa 30TB Traffic auf 10 Server verteilt), welche eine ziemlich große Community hosten.
Für die Community wird der Standard LAMP-Stack verwendet, also Linux/Apache/MySQL/PHP. Alle Server sind über einen Switch miteinander verbunden (LAN und WAN durch VLANs getrennt, jeder Server hat ein Bein in jedem Netz), Datenbankserver und Webserver laufen natürlich auf unterschiedlichen Hosts.
Nun habe ich auf mehreren Servern das Problem, dass häufig MySQL-Verbindungen gedropped werden (zu Zeiten auf denen relativ viele Besucher auf den Seiten sind). Das Connectionlimit von MySQL ist definitiv kein Problem, dieses Limit wird erst gar nicht erreicht, eine Firewall o.ä. blockiert as far as i can see auch nichts. Die Server sind auch nicht ausgereizt, die Load ist eigentlich total niedrig.
In MySQL sieht das bei einem "show global status" wie folgt aus:
srv1 (DB-Server):
mysql> show global status like '%abort%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| Aborted_clients | 1273 |
| Aborted_connects | 250914 |
+------------------+--------+
2 rows in set (0.00 sec)
srv2 (Webserver):
mysql> show global status like '%abort%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Aborted_clients | 0 |
| Aborted_connects | 50584 |
+------------------+-------+
2 rows in set (0.00 sec)
Kernel ist schon relativ gut getuned mMn, folgende Settings hab ich schon gesetzt:
- (/proc/sys/net/netfilter/)nf_conntrack_max
- (/proc/sys/net/ipv4/)tcp_fin_timeout
- (/proc/sys/net/ipv4/tcp_tw_reuse
- (/proc/sys/kernel/)shmall
- (/proc/sys/kernel/)shmmax
- (/proc/sys/net/core)somaxconn
- (/proc/sys/net/ipv4/)tcp_max_tw_buckets
- (/proc/sys/net/ipv4/)tcp_max_syn_backlog
- (/proc/sys/net/core/)netdev_max_backlog
Trotzdem besteht das Problem noch. Auf dem Switch und den Netzwerkkarten sind keine Errors zu finden... Fällt jemandem von euch etwas ein, an was dies noch liegen könnte?
Viele Grüße,
Thomas
Last edited by a moderator: