Skocz do zawartości
Skie

Apache + PHP + Webmin, a zużycie CPU

Polecane posty

Witam,

od niedawna rozpocząłem testy swojego portalu, lecz martwi mnie kilka faktów ze strony serwera. Korzystam z dedyka, a na nim Ubuntu Server 9.10 + Apache2 + PHP + MySQL + Webmin + kilka bibliotek niestandardowych PHPa.

Oprócz tego do tej pory jedynie zmieniałem ustawienia .conf powyższych aplikacji (jeżeli można to tak nazwać) no i porty, hasła, grupy użytkowników etc.

 

Martwi mnie natomiast kilka, faktów, a że specjalistą nie jestem zwracam się o pomoc na forum.

 

1. Portal w tej chwili posiada 150 userów, przy czym średnio online 10 - a zużycie CPU pokazane w Webminie szaleje - raz 0.00, a raz nawet 1.25! - czy to zużycie naprawdę może być aż tak różnorodne? Czy webmin pokazuje jakieś błędne dane? Poza tym 1.25 na dwurdzeniowym procesorze to i tak bardzo dużo, zwłaszcza że 10 userów online to nie jest ogrom obciążeń. Na stronie są stosowane różnorodne systemy cache, ograniczenia połączeń z bazą danych etc.

 

2. Mimo, iz serwer jest prawie "pusty", gdyż jak wymieniłem na początku dużo tego nie zmieniałem do tej pory, posiada normalnie czynnych 120-140 procesów - powinno być tak dużo czy jest z tym coś nie tak? I dlaczego ok. 20-30 tych procesów to:

/usr/sbin/apache2 -k start

...różniące się czasem startu o 1 min.

Czy te procesy są konieczne? Może tyle tych "apachów" powoduje takie skakanie zużycia?

 

Byłbym wdzięczny za szybką i szczegółową odpowiedź co do moich wątpliwości.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Powiem tak. Ja bym się tym nie martwił. Co innego gdyby skakało Ci od 0 do 50%/80%. Zobacz jeszcze na serwerze(w konsoli) co Ci tyle zżera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No właśnie dlatego się martwię, bo z tego co mi wiadomo to Average CPU Loads to już bardzo źle przy 0.70 na rdzeń. Czyli u mnie limit jest 1.40, a osiągnęło już raz 1.25.

 

A w jaki sposób mogę to sprawdzić w konsoli? Pytałem właśnie kilku znajomych, lecz oni nie potrafią niestety sprawdzić tego konsolą.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A w jaki sposób mogę to sprawdzić w konsoli? Pytałem właśnie kilku znajomych, lecz oni nie potrafią niestety sprawdzić tego konsolą.

top / htop

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy mi się dobrze wydaje, że masz LA 1.25 i to jest jakiś problem ?

Po 1 nie wydaje mi się aby to w ogóle był jakiś znaczący load ;)

Po 2 LA nie jest wyznacznikiem obciążenia serwera i to nie jedyny czynnik na który winno się zwracać uwagę.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Fiercio: Dzięki, napewno się przyda to co podałeś. Przyjrzę się zużyciu serwera, co go zżera, gdy znowu podskoczy. W tej chwili jedynie mogę powiedzieć, że tak jak myślałem jedyne zużycie wykazują te identyczne sobie procesy apache - każdy wykazuje inne zużycie CPU od 0% do 3%

 

Najdmen:

1. CLA 1.25 na 2-rdzeniowym procesorze przy 10 osobach online to jest bardzo dużo

2. Wiem, że nie jedyny, ale nim się właśnie przejmuję, bo RAM ma zużycie minimalne, łącze i transfer może być, a zużycie dysków także niskie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przy loadzie 10 zacznij się martwić. Są jakieś widoczne przymulenia stron? Jakie masz iowaity?

 

Zweryfikuj Timeout i keepalive w konfiguracji apache.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przy loadzie 10 zacznij się martwić. Są jakieś widoczne przymulenia stron? Jakie masz iowaity?

 

Przecież ten serwer nic nie robi tylko miesza powietrze. To z czego ten 1.25 load? 10 użytkowników online to core duo nie powininen nawet zauważyć. Ja mam na słabszym procesorze obecnie:

 

 21:15:44 up 58 days,  6:05,  1 user,  load average: 0.32, 0.16, 0.10

 

A forów na nim jest kilka w tym jedno o wiele bardziej aktywne, nie mówiąc już o normalnych stronach.

Jak najbardziej powinień się martwić - jeśli coś nie zżera pamięci, przez co serwer swapuje, to obstawiam że to jakiś problem sprzętowy.

vmstat co pokazuje?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak wygląda log vmstat:

 

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

0 0 0 1583772 38292 203596 0 0 6 23 55 82 1 0 98 0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
To z czego ten 1.25 load?

Moim zdaniem z konfiguracji.

@UP daj jakieś httpd.conf my.cnf itd.

 

Co Wy macie z tym loadem ludziska ? ;)

1, 10, 20, 7, 5 czy 6 jak maszyna pracuje stabilnie i "nie zamula" to jedyne co to kole w oczy ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Co Wy macie z tym loadem ludziska ? ;)

1, 10, 20, 7, 5 czy 6 jak maszyna pracuje stabilnie i "nie zamula" to jedyne co to kole w oczy ;)

 

Witam

 

Z wielką przyjemnością poprę te słowa B) Niewykorzystane zasoby to stracone zasoby.

 

Nie rozumiem po co strach autora tematu jeżeli load będzie powyżej 10 to pomyśl nad administratorem który skonfiguracje ci serwer "profesionalnie". Uwierz że jeśli nie mam problemów na dzień dzisiejszy i jak wyżej wspominano "nie zamula" Śpij spokojnie !

Pozdrawiam Serdecznie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Linux@User: Rozwiązanie problemu nie polega na ucieczce od niego :> A sam też się chcę czegoś nauczyć bo jako webdeveloper (amator póki co) o serwerach też powinienem mieć choć trochę obeznania, a nie tylko jak stworzyć dobrą stronę xD

 

A co do loga to proszę apache2.conf

a httpd.conf jest obecnie pusty ^^

 

ServerRoot "/etc/apache2"

 

PidFile ${APACHE_PID_FILE}

 

Timeout 300

 

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

 

<IfModule mpm_prefork_module>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

</IfModule>

 

<IfModule mpm_worker_module>

StartServers 2

MinSpareThreads 25

MaxSpareThreads 75

ThreadLimit 64

ThreadsPerChild 25

MaxClients 150

MaxRequestsPerChild 0

</IfModule>

 

<IfModule mpm_event_module>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadLimit 64

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

 

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

 

AccessFileName .htaccess

 

<Files ~ "^\.ht">

Order allow,deny

Deny from all

</Files>

 

DefaultType text/plain

 

HostnameLookups On

 

ErrorLog /var/log/apache2/error.log

 

LogLevel warn

 

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

 

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

 

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %O" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

 

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

 

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

 

UseCanonicalName Off

ServerSignature Off

ServerTokens Prod

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Linux@User: Rozwiązanie problemu nie polega na ucieczce od niego :> A sam też się chcę czegoś nauczyć bo jako webdeveloper (amator póki co) o serwerach też powinienem mieć choć trochę obeznania, a nie tylko jak stworzyć dobrą stronę xD

 

A co do loga to proszę apache2.conf

a httpd.conf jest obecnie pusty ^^

 

Witam

Ach oj przepraszam myślałem że skuszę do płatnej pomocy mojej osoby ;)

 

Zacznijmy od początku na jakim skrypcie masz oparty portal/forum bo to może one powodują to "ogromne" obciążenie ?

 

Pozdrawiam Serdecznie

P.S Moje maszyny mają 9.34 średnio i się cieszę ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Aczkolwiek stosuję liczne cache, dobrze pogrupowane zapytanie SQL i kilka tricków zmniejszających obciążenie jak np. AJAX.

Tylko że to raczej nie ma nic do tego, bo nawet jakby skrypt był ciężki (a nie powinien), to obciążenie byłoby duże non stop. A tutaj skacze jak pisałem. W tej chwili jest 12 online i CLA wynosi 0.01. Ale to mi nie gwarantuje że np. za 15 min nie skoczy znowu do 0.70 czy innej "dużej" wartości.

 

Dodam że w ciągu ostatniej godziny nie zanotowałem większego zużycia niż 0.10. Ale po południu znowu przez ok. godzinę utrzymywało się ponad 1.00 ;-/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

pokaż no jeszcze my.cnf spojrzymy na to bo możliwe że masz jakieś mega ciężkie zapytania do bazy

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z tym zapytaniem to bym raczej wątpił, gdyż zużycie skacze nawet wtedy gdy nikt nie korzysta ze stronki.

 

[client]

port = 3306

socket = /var/run/mysqld/mysqld.sock

 

[mysqld_safe]

socket = /var/run/mysqld/mysqld.sock

nice = 0

 

[mysqld]

user = mysql

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

port = 3306

basedir = /usr

datadir = /var/lib/mysql

tmpdir = /tmp

skip-external-locking

bind-address = 127.0.0.1

key_buffer = 16M

max_allowed_packet = 16M

thread_stack = 192K

thread_cache_size = 8

myisam-recover = BACKUP

query_cache_limit = 1M

query_cache_size = 16M

expire_logs_days = 10

max_binlog_size = 100M

 

[mysqldump]

quick

quote-names

max_allowed_packet = 16M

 

[isamchk]

key_buffer = 16M

 

!includedir /etc/mysql/conf.d/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

włącz slow log, i możesz jeszcze dać php.ini nam, przyciąć apache nie umisisz, daj mu jeden req i odpal sobie server-status.

i wywal nice z mysql

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×