Server Load probleme

bayliner

New Member
Hallo,


Habe extreme schwankungen im Serverload , oft so schlimm das garnichts mehr geht :(

Serverload im Schnitt 25,79 ... 11,36 ... 5,07


Hier ein auszug aus TOP während des hohen serverloads:

Code:
top - 04:09:58 up  3:01,  1 user,  load average: 24.26, 10.34, 4.65
Tasks: 124 total,  21 running,  98 sleeping,   0 stopped,   5 zombie
Cpu(s): 54.5%us, 45.5%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2054976k total,   468008k used,  1586968k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
28064 tekkbnbi  18   0 19048 7876 4056 R    0  0.4   0:00.03 php5
28073 tekkbnbi  18   0 19052 7892 4048 R    0  0.4   0:00.08 php5
28088 tekkbnbi  18   0 18268 7092 4024 R    0  0.3   0:00.02 php5
28089 tekkbnbi  18   0 16948 5232 3440 R    0  0.3   0:00.01 php5
28094 tekkbnbi  18   0 16220 3764 2636 R    0  0.2   0:00.01 php5
28116 tekkbnbi  21   0 18276 7180 4012 R    0  0.3   0:00.01 php5
    1 root      15   0  1980  688  592 S    0  0.0   0:00.00 init
12186 root      18   0 33132 1236  936 S    0  0.1   0:00.02 rsyslogd
12202 root      18   0  5272 1036  680 S    0  0.1   0:00.00 sshd
12217 root      15   0  2036  804  640 S    0  0.0   0:00.00 cron
12220 root      18   0  2372  916  720 R    0  0.0   0:00.01 cron
12231 root      17   0  2664 1232 1036 S    0  0.1   0:00.00 svscanboot
12233 root      16   0  1660  368  300 R    0  0.0   0:00.02 svscan
12234 root      18   0  1488  268  216 S    0  0.0   0:00.00 readproctitle
12235 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12236 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12237 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12238 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12239 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12240 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12241 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12242 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12243 root      15   0  1500  312  264 S    0  0.0   0:00.00 supervise
12244 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12245 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12246 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12247 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12248 root      15   0  1500  316  264 S    0  0.0   0:00.00 supervise
12249 root      15   0  1500  320  264 S    0  0.0   0:00.00 supervise
12250 qmails    15   0  1672  408  328 S    0  0.0   0:00.01 qmail-send
12251 root      19   0  1700  548  480 S    0  0.0   0:00.00 tcpserver
12252 root      15   0 29168  26m 2432 S    0  1.3   0:01.06 spamd




PHP 5.2.12
PHPs max. Post-Größe 8,00 MB
PHPs maximale Uploadgröße 2,00 MB
PHPs Speicherlimit -
 
Last edited by a moderator:
Bitte poste alle Prozesse im "Running"-State. im Top-Ausschnitt sind nur 7 enthalten, laut top sind aber zu dem Zeitpunkt 21 gelaufen, somit kann man nicht sagen was da dauernd am laufen ist.
 
Du hast einen relative hohen Anteil an System-Zeit und die gerade laufenden PHP-Prozesse haben kaum CPU-Zeit. Startest du vielleicht für jeden Seitenaufruf einen eigenen PHP-Prozeß, der sich dann sofort wieder beendet?
 
@d4f: das sind alle solche php5


@Cenic: hmm das könnte sein weil wenn mehr user auf meiner website sind dann erhöht sich die zahl der php5 prozesse, wo kann man dies einstellen?
 
Läuft PHP im CGI-Modus?
In dem Fall würde ich empfehlen, die Timeout-Werte zu erhöhen. Ich hatte zwar keine Load-Probleme, jedoch wurden die Prozesse bei weniger besuchten Websiten stets beendet, und dies führte dazu dass beim erneuten Aufruf der Website eine Wartezeit von 2-3 Sekunden entstand.
Meine Werte sind vielleicht etwas extrem, aber versuchen kannst du's ja, vielleicht hilft's:

Code:
/etc/apache2/mods-enabled/fcgi.conf
<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi
  IPCConnectTimeout 60
  IPCCommTimeout 90
  IdleTimeout 43200
  IdleScanInterval 900
  ProcessLifeTime 43200
  MaxProcessCount 128
  MaxRequestsPerProcess 10000
  DefaultMaxClassProcessCount 4
  DefaultMinClassProcessCount 1
</IfModule>
 
Danke für den Hinweis :)

Meine FCGI-Config hat auch diese Variable

Code:
fastcgi.server    = ( ".php" =>
        ((
                "bin-path" => "/usr/bin/php-cgi",
                "socket" => "/tmp/php.socket" + var.PID,
                "max-procs" => 2,
                "idle-timeout" => 30,
                "bin-environment" => (
                        "PHP_FCGI_CHILDREN" => "6",
                        "PHP_FCGI_MAX_REQUESTS" => "10000"
                ),
                "bin-copy-environment" => (
                        "PATH", "SHELL", "USER"
                ),

Hat jemand mal 'ne Info zu dem Bug?
 
=>http://web.archive.org/web/20080403191327/http://fastcgi.coremail.cn/doc.htm
This solves a problem with PHP in FastCGI mode. By default, PHP stops accepting new FastCGI connections after handling 500 requests; unfortunately, there is a potential race condition during the PHP cleanup code in which PHP can be shutting down but still have the socket open, so mod_fcgid under heavy load can send request number 501 to PHP and have it "accepted", but then PHP appears to simply exit, causing errors.
 
Danke für die Info. Ich konnte bisher auf keinem meiner Server mit dieser Konfiguration PHP-Fehler durch diese Variable feststellen.

Ich habe beim Suchen herausgefunden, dass dieser "Bug" wohl auch abhängig ist vom Betriebssystem.
 
Naja das Problem zu beheben ist relativ komplex, da der cleanup-Prozess _vor_ der Socketterminierung ist waehrend es umgedreht sein muesste und somit beide Teile umgedreht werden muessen.
Da aber der cleanup (afaik) nach jedem Benutzen ist muesste er somit vor dem cleanup testen ob eine Socketterminierung notwendig ist.
 
Back
Top