Wir haben einige Produktionssysteme, die kürzlich in virtuelle Maschinen konvertiert wurden. Es gibt eine unserer Anwendungen, die häufig auf eine MySQL-Datenbank zugreift und für jede Abfrage eine Verbindung erstellt, diese Verbindung abfragt und trennt.
Es ist nicht die geeignete Art zu fragen (ich weiß), aber wir haben Einschränkungen, die wir scheinbar nicht umgehen können. Das Problem ist jedenfalls das folgende: Während der Computer ein physischer Host war, lief das Programm einwandfrei. Nach der Konvertierung in eine virtuelle Maschine haben wir zeitweise Verbindungsprobleme mit der Datenbank festgestellt. Zu einem bestimmten Zeitpunkt gab es in TIME_WAIT mehr als 24000 Socket-Verbindungen (auf dem physischen Host sah ich höchstens 17000 - nicht gut, verursachte aber keine Probleme).
Ich möchte, dass diese Verbindungen wiederverwendet werden, damit wir dieses Verbindungsproblem nicht sehen, und so:
Fragen:
Ist es in Ordnung, den Wert von tcp_tw_reuse auf 1 zu setzen? Was sind die offensichtlichen Gefahren? Gibt es einen Grund, warum ich es niemals tun sollte?
Gibt es auch eine andere Möglichkeit, das System (RHEL / CentOS) dazu zu bringen, zu verhindern, dass so viele Verbindungen in TIME_WAIT gelangen, oder sie wiederzuverwenden?
Was würde eine Änderung von tcp_tw_recycle bewirken und würde mir das helfen?
Im Voraus danke!