hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Apache, Lighttpd, nginx, Cherokee
Post Reply
rr.
Posts: 16
Joined: 2005-08-24 20:46
 

hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by rr. »

hoi,

ich betreibe ein wbb das zu stoßzeiten um die 300 user online hat,
bis 300 user läuft alles gut load zwischen 1,5 und 2,5 (auch nicht so toll wie ich gehört hab)

ich denke es liegt an einer fehlconfiguration nur weis ich nicht was genau, oder könnte es auch was anderes sein ?

daten:
-----------
p4 2,8ghz ht
1gb ram
160gb sata
-----------
debian sarge
apache 1.3.33
php 4.3.10-15
MySQL 4.0.24_Debian-10-log
------------

das komische ist ja sobald es über 300 werden geht die load auf 3 4 5 bis 15 und dann geht sogut wie garnix mehr :-(

hoffe mir kann jemand helfen ich bin schon am verzweifeln wie es weitergehn soll...
primus
Posts: 18
Joined: 2003-01-21 15:11
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by primus »

hast du mal die db vom wbb optimiert? ich glaubenämlich das beim wbb viel kram der nicht undbedingt notwändig wäre in die db gespeichert wird.
rr.
Posts: 16
Joined: 2005-08-24 20:46
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by rr. »

also wenn du die funktion optimiern meinst ja hab gestern optimiern und repariern durchlaufen lassen...

ansonsten wüst ich jetz net was ich da machen sollte ? ich nehm an das wbb was gescheites programmiert ^^ oder auch nicht :lol:

es sind 200 leute online und die load ist schon bei 1 also irgend wie kann das ja nicht optimal sein ?

und mir fällt auf das ich haufenweise verbindungen offen hab wenn ich netstat -an mache, kann ich da irgend wie das timeout runterstellen oder ist das notwendig das da 400 verbindungen oder mehr offen sind ?

sql und apache timout hab ich eigentlich auf 100 bzw 30 gestellt das ist schon recht niedrig...
outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by outofbound »

Wahrscheinlich läuft dir einfach der Speicher voll und die Kiste swapt sich tot.

Schalte mal den Swap aus, und schau obs besser wird.

Gruss,

Out
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by alexander newald »

mach mal ein

pstree
free
ps xafuwr

in CODE Tags (zum besseren Lesen), wenn das System langsam ist.

Bei einem HT Proz ist ein Load von 1 eigendlich noch nicht schlimm
rr.
Posts: 16
Joined: 2005-08-24 20:46
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by rr. »

pstree:

Code: Select all

init─┬─apache───37*[apache]
     ├─cron
     ├─events/0─┬─aio/0
     │          ├─ata/0
     │          ├─kacpid
     │          ├─kblockd/0
     │          ├─khelper
     │          └─2*[pdflush]
     ├─exim4
     ├─6*[getty]
     ├─inetd
     ├─khubd
     ├─kjournald
     ├─klogd
     ├─kseriod
     ├─ksoftirqd/0
     ├─kswapd0
     ├─mailmanctl───8*[python]
     ├─mysqld_safe───mysqld_safe─┬─logger
     │                           └─mysqld
     ├─pciehpd_event
     ├─proftpd
     ├─scsi_eh_0
     ├─scsi_eh_1
     ├─shpchpd_event
     ├─sshd───sshd───bash───pstree
     └─syslogd
free:

Code: Select all

             total       used       free     shared    buffers     cached
Mem:        906744     845336      61408          0      21872     578236
-/+ buffers/cache:     245228     661516
Swap:      2650684         48    2650636

ps xafuwr:

Code: Select all

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root     20068  0.0  0.0  2488  796 pts/0    R+   11:04   0:00 ps xafuwr
wobei ich gestern noch weng rumgestellt hab an configs, und hab keepalive off und die wait_timeout von my.cnf auf 100

jetz läuft der server auf 3er load bei 350 user online, da ist er früher schon teilweise abgekackt und über 10load geschossen, also von daher hats schon weng was gebracht... leider ist eine 3er load nicht ganz optimal da es doch etwas langsam läuft :/

hoffe ihr könnt mit den daten was anfangen, kann ja auch die configs posten falls das was bringt ?[/quote]
outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by outofbound »

Probier wirklich mal aus, den Swap ausyuschalten.

Das die Load eskaliert bedeutet meistens, dass sich das System kaputtswapt. (Mysql macht sowas gerne). Wenn das der Fall ist, heisst es: Querys optimieren.

Gruss,

Out
rr.
Posts: 16
Joined: 2005-08-24 20:46
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by rr. »

das kann sein weil der swapt ab und zu mal paar kb rüber, jetz sinds zb 300kb die da rumliegen... der löscht die auch nicht mehr, erst nach reboot :-(

wie schalte ich eigentlich swapen aus ?

bzw bringt es was wenn ich in der httpd.conf
die maxrequestsperchild auf 0(unendlich) setze ? momentan ists auf 100 und das heißt da er killt den prozess nach 100 arbeiten ab und startet nen neuen somit wird wieder ram frei aber prozess starten kostet dafür cpu. hab ich zumindest so "zusammen-gelesen" aus google ^^

und der server hat unter netstat -an haufenweise verbindungen offen, ist das normal oder kann man da irgend nen timeou einstellen das die gekillt werden ?
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by flo »

1) swapon / swapoff

2) maxqueries per child sind eigentlich eher gut, aber experimentier mit dem Wert mal.

flo.
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by alexander newald »

Stimmt die Zeile aus dem pstree?

Code: Select all

     ├─mysqld_safe───mysqld_safe─┬─logger 
     │                           └─mysqld 
Das hiesse ja, dass nur ein Prozess für mysql läuft...

Den Swap sollte man an lassen. Das Swap benutzt wird ist gut und bei knappen 500MB freien Speicher (bzw. vom Cache genutzt) wird der Swap auch nur zum Auslagern von Daten benutzt, die nicht gebraucht werden. Erst wenn der Swap in Richtung 1/2 cached + free geht, ist es nicht mehr gut.

mySQL kann man mit --memlock starten, dann wird mySQL nicht ausgelagert.

Ansonsten sieht das eigendlich ganz gut aus. Was ich mir noch vorstellen könnte, ist, dass die Festplatte irgendwie zu viel zu tun hat. Mal mit procinfo -f -n10 -D anzeigen lassen.
rr.
Posts: 16
Joined: 2005-08-24 20:46
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by rr. »

ah thx, das mit dem mysql in mem lassen werd ich dann beim nächsten start probiern.

in der top ist sql eigentlich nie weit oben, 90% sind das die ganzen apache prozesse die da laufen... (auch dynamische seiten wie php scripte werden dazugezählt glaub ich)

Code: Select all

ironfist:~# procinfo -f -n10 -D
-bash: procinfo: command not found
tut sich leider nichts :( weil ich würde auch gerne wissen wie meine festplatte belastet ist, hab gehört das beim swapen usw die platte leicht ein io stirbt :(

wobei ich sagen muss seit der config änderung und dem neustart lief der server ohne ausfällt bis 390 user online wobei er da schon über 5er load ging und es extrem knapp vorm gau stand...
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by alexander newald »

procinfo nachinstallieren?
rr.
Posts: 16
Joined: 2005-08-24 20:46
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by rr. »

ah jetz ^^

Code: Select all

Memory:      Total        Used        Free      Shared     Buffers
Mem:        906744      852236       54508           0       17588
Swap:      2650684         252     2650432

Bootup: Wed Aug 24 18:59:29 2005    Load average: 1.87 1.59 1.57 1/107 9301

user  :       0:00:04.73   4.7%  page in :        0
nice  :       0:00:00.00   0.0%  page out:        0
system:       0:00:00.42   0.4%  swap in :        0
idle  :       0:00:04.47   4.5%  swap out:        0
uptime:   1d 13:10:12.39         context :     5010

irq  0:     10000 timer                 irq169:         0 uhci_hcd, uhci_hcd
irq  1:         0                       irq177:         0 uhci_hcd
irq  6:         0                       irq185:       220 libata, uhci_hcd
irq  7:         0 parport0              irq193:         0 ehci_hcd
irq  9:         0 acpi                  irq201:         0 Intel ICH5
irq 12:         0                       irq209:      4792 eth0
whisper
Posts: 29
Joined: 2005-08-26 11:26
Contact:
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by whisper »

Ein Load von 2 ist doch noch nichts schlimmes... das sieht doch auch gar nicht nach einem überlasteten System aus.
Fühlt sich denn das System zäh an?
Wie ist mysql eingestellt? Man kann in der /var/lib/mysql/my.cnf respektive /etc/my.cnf
(debian)
verschiedene Werte einstellen.

Code: Select all

key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
net_buffer_length = 2K
thread_stack = 64K
sind z.B. die Werte für ein sehr kleines System.

Das System hat 500Kbyte gecached. Swappen ist also wirklich nicht das Problem.
Ein grosses mysql mit genug Arbeitspeicher kann gut und gerne so konfiguriert werden: (Das ist ein Ausschnit aus den examples zu mysql

Code: Select all

# Example MySQL config file for large systems.
#
# This is for a large system with memory = 512M where the system runs mainly
# MySQL.
#
# You can copy this file to
# /etc/my.cnf to set global options,

# The MySQL server
[mysqld]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by Joe User »

whisper wrote:Man kann in der /var/lib/mysql/my.cnf respektive /etc/my.cnf (debian) verschiedene Werte einstellen.
/etc/my.cnf ist und war nie debianspezifisch, sondern MySQL-Default.
whisper wrote:

Code: Select all

thread_concurrency = 8
Wer das auf einem System mit <4 realen CPUs setzt, hat selbst Schuld, wenn die Kiste hopps geht...

Hier werden sie geholfen: http://www.rootforum.org/forum/viewtopic.php?t=36343
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
whisper
Posts: 29
Joined: 2005-08-26 11:26
Contact:
 

Re: hohe Load, Apache1.3, Mysql ? woran liegts (300 user online)

Post by whisper »

Ja, und?
direkt darueber ist ja auch der Kommentar dazu ;)

Ich habe keine Lösung geboten, sondern einen Denkanstoss, die Performanceprobleme mal im setup der Datenbank zu suchen
Post Reply