Skocz do zawartości


 

Zdjęcie

[Linux] Optymalizacja apache2 (cache)

[Linux] Optymalizacja apache2 (cache) apache optymalizacja

  • Proszę się zalogować aby odpowiedzieć
12 odpowiedzi na ten temat

[Linux] Optymalizacja apache2 (cache)

#1 jasiek07

jasiek07

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 207 postów

Napisany 17 maj 2014 - 15:34

Witam,

mam problemy z wydajnością serwera przy dużej ilości odwiedzających. Podejrzewam, że problem głównie leży po stronie konfiguracji apache2. Słyszałem, że najlepszym krokiem w kierunku optymalizacji serwera jest zwiększenie pamięci podręczeniej, jako że praktycznie cała zawartość mojej strony jest statyczna, to chciałbym zwiększyć cache aby zwiększyć wydajność. Ponieważ na obecną chwilę przy znacznym ruchu moja strona wysiada, zużycie ramu wynosi 100% aż w pewnym momencie wysiada baza danych i trzeba naprawiać tabele i resetować ciągle serwer.

CPU model : Intel(R) Xeon(R) CPU L5639 @ 2.13GHz
Number of cores : 2
CPU frequency : 2134.000 MHz
Total amount of ram : 2048 MB
Total amount of swap : 0 MB
System uptime : 1 day, 18:40,
Download speed from CacheFly: 30.7MB/s
Download speed from Coloat, Atlanta GA: 3.05MB/s
Download speed from Softlayer, Dallas, TX: 30.6MB/s
Download speed from Linode, Tokyo, JP: 11.1MB/s
Download speed from i3d.net, Rotterdam, NL: 7.13MB/s
Download speed from Leaseweb, Haarlem, NL: 19.6MB/s
Download speed from Softlayer, Singapore: 2.20MB/s
Download speed from Softlayer, Seattle, WA: 36.6MB/s
Download speed from Softlayer, San Jose, CA: 57.8MB/s
Download speed from Softlayer, Washington, DC: 18.9MB/s
I/O speed : 110 MB/s
apache2ctl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)
Syntax OK

Mój config w załączniku (musiałem zmienić rozszerzenie na *txt ponieważ inne nie chciało się wgrać).

 

Załączony plik  apache2.txt   9,68K   169 pobrań

 

 

Mógłby ktoś pomóc w ustawieniu tego cache? Szukałem troche po googlach ale niezbyt klarownie to było wytłumaczone..

 

Pozdrawiam!


Edytowany przez jasiek07, 17 maj 2014 - 15:58.

  • 0

#2 przemon

przemon

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 148 postów
  • Skąd:Kraków
  • Imię:Przemyslaw
  • Nazwisko:Nowakowski

Napisany 17 maj 2014 - 22:10

Wkleiłeś główny config apache z którego nic nie wynika. Zapewne masz apache + mod_php

 

Pokaż wynik poleceń:

 

free -m

 

i listę procesów

 

ps -aux

 


  • 0

#3 jasiek07

jasiek07

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 207 postów

Napisany 18 maj 2014 - 14:18

 total       used       free     shared    buffers     cached
Mem:          2048        781       1266          0          0        497
-/+ buffers/cache:        284       1763
Swap:            0          0          0
root@jasiek:~#

 

 ps -aux
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   8360   128 ?        Ss   May17   0:00 init [2]
root         2  0.0  0.0      0     0 ?        S    May17   0:00 [kthreadd/201]
root         3  0.0  0.0      0     0 ?        S    May17   0:00 [khelper/201]
root       460  0.0  0.0   5988   484 ?        Ss   May17   0:00 /sbin/syslogd
root       481  0.0  0.0  54568   212 ?        Ss   May17   0:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 2
root       482  0.0  0.0  54568   188 ?        S    May17   0:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 2
root       498  0.0  0.2 204876  5336 ?        Ss   May17   0:09 /usr/sbin/apache2 -k start
root       531  0.0  0.0  49180   764 ?        Ss   May17   0:00 /usr/sbin/sshd
109        547  0.0  0.0  23272   804 ?        Ss   May17   0:00 /usr/bin/dbus-daemon --system
root       584  0.0  0.0  19340   416 ?        Ss   May17   0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6
root       611  0.0  0.0   9196   488 ?        S    May17   0:00 /bin/sh /usr/bin/mysqld_safe
root       612  0.0  0.0  20912   384 ?        Ss   May17   0:00 /usr/sbin/cron
root       841  0.0  0.0  39056   712 ?        Ss   May17   0:01 /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf
root       844  0.0  0.0  75032  1320 ?        S    May17   0:00 dovecot-auth
root       863  0.0  0.0  75112  2004 ?        S    May17   0:00 dovecot-auth -w
root       917  0.0  0.0  37180   680 ?        Ss   May17   0:00 /usr/lib/postfix/master
postfix    924  0.0  0.0  39408  1152 ?        S    May17   0:00 qmgr -l -t fifo -u
postfix   2484  0.0  0.0  41764  1504 ?        S    May17   0:00 tlsmgr -l -t unix -u -c
mysql    15774  1.1  2.4 344216 51140 ?        Sl   May17  12:15 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var
root     15775  0.0  0.0   3860   420 ?        S    May17   0:00 logger -t mysqld -p daemon.error
dovecot  26327  0.0  0.1  36928  2568 ?        S    05:07   0:00 imap-login
dovecot  26593  0.0  0.1  36916  2572 ?        S    05:26   0:00 pop3-login
dovecot  26594  0.0  0.1  36916  2568 ?        S    05:26   0:00 pop3-login
dovecot  26597  0.0  0.1  36916  2572 ?        S    05:26   0:00 pop3-login
postfix  28512  0.0  0.1  39244  2376 ?        S    08:20   0:00 pickup -l -t fifo -u -c
dovecot  28998  0.0  0.1  36928  2568 ?        S    08:57   0:00 imap-login
support  28999  0.0  0.1  40088  2172 ?        S    08:57   0:00 imap
dovecot  29013  0.0  0.1  36928  2572 ?        S    08:58   0:00 imap-login
www-data 29229  1.2  1.1 218364 23368 ?        S    09:14   0:01 /usr/sbin/apache2 -k start
www-data 29232  0.3  1.3 224492 29148 ?        S    09:14   0:00 /usr/sbin/apache2 -k start
www-data 29238  1.9  1.1 219384 24244 ?        S    09:15   0:01 /usr/sbin/apache2 -k start
www-data 29239  0.7  1.1 221456 24972 ?        S    09:15   0:00 /usr/sbin/apache2 -k start
www-data 29240  0.0  0.3 205376  7592 ?        S    09:15   0:00 /usr/sbin/apache2 -k start
www-data 29241  1.6  1.1 219384 24200 ?        S    09:15   0:01 /usr/sbin/apache2 -k start
www-data 29245  1.2  1.1 219648 24208 ?        S    09:15   0:00 /usr/sbin/apache2 -k start
www-data 29249  1.8  1.1 219384 24184 ?        S    09:15   0:01 /usr/sbin/apache2 -k start
www-data 29251  2.3  1.3 223188 28068 ?        S    09:15   0:01 /usr/sbin/apache2 -k start
root     29252  0.0  0.1  79016  3644 ?        Ss   09:16   0:00 sshd: root@pts/0
root     29254  0.0  0.0  17724  1924 pts/0    Ss   09:16   0:00 -bash
www-data 29259  1.3  1.1 218384 23196 ?        S    09:16   0:00 /usr/sbin/apache2 -k start
www-data 29262  0.0  0.2 204876  5744 ?        S    09:17   0:00 /usr/sbin/apache2 -k start
root     29263  0.0  0.0  14824  1072 pts/0    R+   09:17   0:00 ps -aux

Rozumiem, mogę wkleić cały folder apache


  • 0

#4 przemon

przemon

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 148 postów
  • Skąd:Kraków
  • Imię:Przemyslaw
  • Nazwisko:Nowakowski

Napisany 18 maj 2014 - 14:57

Nie masz przestrzeni wymiany (swap).

 

 

1. Zainstaluj sysstat i odpal w interwale 5 min to będziemy wiedzieli co zjada zasoby i jakie:

 

http://www.leonardob...n-ubuntudebian/

 

2. Utwórz i aktywuj partycję wymiany albo jak nie masz możliwości to plik wymiany:

 

http://www.cyberciti...wap-file-howto/

 

 


  • 0

#5 jasiek07

jasiek07

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 207 postów

Napisany 18 maj 2014 - 15:35

Plik sysstat odpalony. Z plikiem wymiany niestety jest problem, nie odpalę go bo mam OpenVZ wirtualizację. Ale i tak zmienie na dniach vpsa bo ten miał być tymczasowy. Więc na obecną chwilę drugi krok odstawiam na potem (kwestia kilku dni). Dzięki za pomoc. Dzisiaj będę miał duży ruch, takżę wrzucę po wszystkich statystyki z sysstata.

 

A takto dokończę resztę jak kupie jakiegos KVM albo ewentualnie kupie ovz ale ze swapem


Edytowany przez jasiek07, 18 maj 2014 - 15:56.

  • 0

#6 Misiek08

Misiek08

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1157 postów

Napisany 18 maj 2014 - 16:08

Już jednemu użytkownikowi pomogłem. Zamiana na nginx + php-fpm i dodatkowo zamiana skryptu zamieniającego IP na lokalizację i okazało się, że nawet mały VPS z polskiej firmy obsłuży duży ruch. Ok. 0.5mln requestów w 3 godziny to niezły wynik jak na maluszka

Edytowany przez Misiek08, 18 maj 2014 - 16:09.

  • 0

#7 linoskoczek

linoskoczek

    Stały użytkownik

  • WHT Pro
  • PipPipPipPipPip
  • 422 postów

Napisany 18 maj 2014 - 21:45

Po przejęciu forum przez nazwa.pl i zmianach w regulaminie zdecydowałem się usunąć wszystkie swoje posty. Cześć.


Edytowany przez linoskoczek, 20 wrzesień 2017 - 14:53.

  • 0

#8 przemon

przemon

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 148 postów
  • Skąd:Kraków
  • Imię:Przemyslaw
  • Nazwisko:Nowakowski

Napisany 19 maj 2014 - 08:12

Już jednemu użytkownikowi pomogłem. Zamiana na nginx + php-fpm i dodatkowo zamiana skryptu zamieniającego IP na lokalizację i okazało się, że nawet mały VPS z polskiej firmy obsłuży duży ruch. Ok. 0.5mln requestów w 3 godziny to niezły wynik jak na maluszka

 

A skąd wiesz że to wina apache 2.2 + mod_php?


  • 2

#9 Misiek08

Misiek08

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1157 postów

Napisany 20 maj 2014 - 14:30

Łącze jest, wszystko działa dopóki nie ma dużego obciążenia. Duże obciążenie na Apache'u ze względu na jego budowę powoduje ogromny skok zużycia pamięci, a alternatywne serwery radzą sobie z jej zarządzaniem dużo lepiej.

Edit:
Nawet jeśli teraz przywróci Apache do życia to niebawem ruch urośnie i znowu problem.
Poza tym skoro brakuje RAMu to polecać koledze SWAP? To po co mu w ogóle RAM, niech tylko na dysku SWAPuje wszystko - będzie szybciej!

Edytowany przez Misiek08, 20 maj 2014 - 14:31.

  • 0

#10 jasiek07

jasiek07

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 207 postów

Napisany 20 maj 2014 - 14:32

Więc co proponujecie, zupgradowałem serwer do 4gb pamięci


  • 0

#11 Misiek08

Misiek08

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1157 postów

Napisany 20 maj 2014 - 15:12

Dalej są problemy z pamięcią?

Jeżeli tak to ja dalej się będę upierał przy nginx + php-fpm.

Przy okazji jakieś statystyki ruchu możesz podać?
  • 0

#12 NetMat

NetMat

    Stały użytkownik

  • WHT Pro
  • PipPipPipPipPip
  • 488 postów

Napisany 20 maj 2014 - 23:24

Z nginx'em cały serwer odżyje :D pamiętam jak ja zmieniłem apache na nginx'a to naprawdę sporo zasobów procka i ram maiłem wolnych


  • 0

#13 malu

malu

    Linux administrator

  • Firma Bronze
  • PipPipPipPipPipPipPipPip
  • 1753 postów
  • Skąd:Leszno
  • Firma:NODEA
  • Imię:Mateusz
  • Nazwisko:Adach

Napisany 20 maj 2014 - 23:44

Nginx + FPM to przecież lekarstwo na wszystkie choroby, owszem zużywało by to mu mniej zasobów bo nginx domyślnie uruchamia mniej procesów niż apache no i jego architektura wymusza mniejsze zużycie pamięci, ale do cholery - to byłą by dobra rada, gdyby miał 128MB ram, a nie 4GB.

Bez znaczenia czy tam wrzucisz nginx czy php-fpm, skoro masz VPS openVZ oparty o stary BC bez vswap - czyli zliczający zużycie VSZ, a nie RSS musisz zmniejszyć wielkość stosu.
Odsyłam:
http://openvz.org/Stack_size

SQL zostaw  w spokoju, ale apache, bind'a itd.. powinien spokojnie działać na 128/256.
Reasumując dopisujesz ulimit -s 128 do:
/etc/init.d/apache2 lub /etc/init.d/httpd


W razie problemów po prostu zwiększ stos.

 


  • 0






Także otagowane jednym lub więcej z tych słów kluczowych: apache, optymalizacja

0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników