Deutsch| English
  #1  
Alt 20.09.2011, 14:06
Neuer Benutzer
 
Registriert seit: 22.03.2011
Beiträge: 14
Standard MySQL - Too Many Connections

Hi,

habe ein Problem mit dem ISPConfig (3.0.3.3 auf CentOS 6). Und zwar laufen die max_connections vom mysql server voll. Innerhalb von ein paar Stunden waren die 150 Connections vom ispconfig user belegt (sleep).

Das blockiert dann den ganzen mysql dienst.

Nun habe ich die max_connections auf 500 erhöht und es sind aber schon wieder 260 connections vom ispconfig user vorhanden.

Woran liegt das?
Mit Zitat antworten
  #2  
Alt 20.09.2011, 14:11
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Du musst max_connections und max_user_connections auf 500 setzen, nur max_connections reicht nicht.

Alle Dienste auf dem Server nutzen den user "ispconfig" für die MySQL Verbindung, das was Du dort also siehts sind also nicht Verbindungen von ISPConfig mit der mysql DB sondern es sind Verbindungen von postfix, amavisd, pure-ftpd, courier bzw. dovecot. Die Verbindungen belegen keine weiteren Resourcen, d.h. ein paar Hundert verbindungen sind ganz normal und werden von den Diensten offen gehalten, da der Ressourcenverbrauch geringer ist als sie jedesmal neu aufzubauen. Daher sind die ja auch im "sleep" Status.
Mit Zitat antworten
  #3  
Alt 20.09.2011, 14:25
Neuer Benutzer
 
Registriert seit: 22.03.2011
Beiträge: 14
Standard

Hab schon beides (max_connections und max_user_connections) auf 500 gesetzt.

Im Moment sind 270 Verbindungen im Sleep Modus.

Hat mich nur gewundert, dass so viele connections offen sind. Auf einem zweiten ISPConfig Server hatte ich diese "Probleme" nicht.

Und der Server läuft ja noch nicht mal produktiv. Hab nur keine Lust, dass der mysql dienst dann wieder abraucht, wenn die typo3 site live geht.
Mit Zitat antworten
  #4  
Alt 20.09.2011, 14:37
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Du kannst Die mysql connections auch problemlos auf 1000 setzen wenn Du gnaz sicher gehen willst, da dies kein Resourcenproblem darstellt. Das Setup sollte aber auch so ausreichend sein wenn es nicht mehr als 100 - 200 vhosts auf dem Server sind.
Mit Zitat antworten
  #5  
Alt 20.09.2011, 15:26
Neuer Benutzer
 
Registriert seit: 22.03.2011
Beiträge: 14
Standard

Aber warum braucht ISPConfig so viele connections? Auf dem Server ist nur ein vhost und der läuft noch nicht mal produktiv.

Jetzt bin ich bei 330 Connections.

Ich habe halt bedenken, dass selbst die 1000 irgendwann nicht mehr reichen.
Mit Zitat antworten
  #6  
Alt 20.09.2011, 15:37
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Wie oben beschrieben, die connections sind nicht von ISPConfig sondern von den diversen Diensten auf Deinem Server. Der User heißt ispconfig, da es wenig Sinn macht 10 verschiedene User mit den gleichen Rechten zum Zugriff auf die gleieche Datenbank einzurichten und aktuell zu halten. Die meisten connections werden von postfix geöffnet, dann noch einige von amavisd, pure-ftpd dovecot, vlogger etc. Also alles ganz normal.

Zitat:
Ich habe halt bedenken, dass selbst die 1000 irgendwann nicht mehr reichen.
Also bei Produktivservern mit ca. 100 websites reichen 500 connections. Wenn Du also erstmal nicht mehr als 100 websites mit ein paar hundert mail accounts auf dem Server hast, dann sollte das reichen. Das Setup läuft so auf zehntausenden Servern weltweit, Du kannst also ganz sicher sein dass es einwandfrei funktioniert.

Was Du aber mal prüfen kannst ist ob vlogger einwandfrei geht, also ob Du web traffic im ISPConfig Interface angezeigt bekommst und ob es keine vlogger Fehler im globalen apache error.log gibt.
Mit Zitat antworten
  #7  
Alt 21.09.2011, 10:11
Neuer Benutzer
 
Registriert seit: 22.03.2011
Beiträge: 14
Standard

Also heute bin ich schon wieder bei 480 Connections und somit schon wieder fast am 500er Limit, das ich gesetzt hab.

Die Traffic Anzeige funktioniert. Ich bekomme Daten angezeigt, ob die wirklich stimmen hab ich nicht kontrolliert.

Und auch sonst seh ich im Apache Log keine Fehler.

Die älteste connection (mit "mysqladmin processlist" ausgegeben) ist seit 8 Stunden im sleep mode.

Nur dieser Fehler wurde angezeigt, den habe ich aber behoben:
Code:
PHP Warning:  strftime(): It is not safe to rely on the system's timezone settings. You are *requi
red* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warni
ng, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /usr/share/phpmyadmin/libraries/common.lib.
php on line 1484,
EDIT:
Habe jetzt rausgefunden, dass diese Verbindungen vermutlich von diesen Dateien kommen:

Code:
/usr/local/ispconfig/server/server.sh
/usr/local/ispconfig/server/server.php
Davon sind knapp 2000 Prozesse offen bzw. im Status wait.

Geändert von Netscape (21.09.2011 um 11:30 Uhr).
Mit Zitat antworten
  #8  
Alt 21.09.2011, 11:39
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Schalte mal das debugging in ispconfig ein und poste dann die Ausgabe des Aufrufes von:

/usr/local/ispconfig/server/server.sh
Mit Zitat antworten
  #9  
Alt 21.09.2011, 11:43
Neuer Benutzer
 
Registriert seit: 22.03.2011
Beiträge: 14
Standard

Debuggin ist angeschaltet und hier schon mal der inhalt der Dateien:

server.sh:
Code:
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin

. /etc/profile

/usr/bin/php -q /usr/local/ispconfig/server/server.php
server.php (den Teil den ich als fehlerquelle vermute):
Code:
// Check whether another instance of this script is already running
if(is_file($conf['temppath'].$conf['fs_div'].'.ispconfig_lock')){
  clearstatcache();
  for($i=0;$i<120;$i++){ // Wait max. 1200 sec, then retry
    if(is_file($conf['temppath'].$conf['fs_div'].'.ispconfig_lock')){
      exec("ps aux | grep '/usr/local/ispconfig/server/[s]erver.php' | wc -l", $check);
      if(intval($check[0]) > 1) { // 1 because this is 2nd instance!
          $app->log('There is already an instance of server.php running. Exiting.', LOGLEVEL_DEBUG);
          exit;
      }
      $app->log('There is already a lockfile set. Waiting another 10 seconds...', LOGLEVEL_DEBUG);
      sleep(10);
      clearstatcache();
    }
  }
}
Und hier noch die Info´s vom pstree command:
Code:
     ├─crond─┬─1929*[crond───sh───server.sh───php───sh─┬─grep]
     │       │                                         ├─ps]
     │       │                                         └─wc]

Geändert von Netscape (21.09.2011 um 11:47 Uhr).
Mit Zitat antworten
  #10  
Alt 21.09.2011, 11:47
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Poste doch bitte mal die Ausgabe des Befehls und nicht den Quelltext der auf jeder ISPConfig Installation identisch ist. Das es nicht am Quelltext liegt kannst Du Dir ja sicher denken, da sonst niemand das Problem hat (bei um die 20 tausend Neuinstallationen pro Monat).
Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:08 Uhr.


Powered by vBulletin® Version 3.8.1 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0