Skocz do zawartości

Próba optymalizacji serwera Apache2+FCGI i.. error.. :-/


hazael

Rekomendowane odpowiedzi

Nie jestem pewny, czy pisanie o tym problemie w tym miejscu jest właściwe, ale..

Przeniosłem się niedawno na serwer VPS (OpenVZ), na którym oczywiście wszystko w confingach było ustawione domyślnie - w tym Procek 1GB + pamięć 1GB (gwarantowane512MB).

Postawiłem tam tylko jedną stronę www . Wszystko mi pasowało poza tym, że strona mi strasznie wolno chodziła w godzinach szczytu. Zdecydowałem się na optymalizacje serwerka i tu zaczęły się moje schody i problemy.

W logach serwera od czasu do czasu wywala mi błąd

[error] [client xxx.xxx.xx.xx] Premature end of script headers: index.php, referer: https://mojastrona.com
[warn] [client xxx.xxx.xx.xx] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server

Strona czasem zgłasza irytujący komunikat Internal serwer error - przypadkowo w dowolnie odwiedzanym miejscu tejże witryny.

Gdy tego błedu nie było, zrobiłem trochę zmian/modyfikacji w ustawieniach i myślę, że któreś z nich mogą na to wpływać - niestety ciężko mi ocenić które.

Aby przyspieszyć ładowanie stron zainstalowałem eaccelerator.so jego standardowe ustawienia:

extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Konfiguracja Apache2:

Timeout 40
KeepAlive Off
MaxKeepAliveRequests 200
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
StartServers		 10
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>

Tak jest wyświetlane Apache:

# apache2 -V

Server version: Apache/2.2.16 (Debian)

Server built: Sep 25 2011 22:18:56

Server's Module Magic Number: 20051115:24

Server loaded: APR 1.4.2, APR-Util 1.3.9

Compiled using: APR 1.4.2, APR-Util 1.3.9

Architecture: 32-bit

Server MPM: Prefork

threaded: no

forked: yes (variable process count)

Server compiled with....

-D APACHE_MPM_DIR="server/mpm/prefork"

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D APR_HAS_OTHER_CHILD

-D AP_HAVE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT=128

-D HTTPD_ROOT="/etc/apache2"

-D SUEXEC_BIN="/usr/lib/apache2/suexec"

-D DEFAULT_PIDLOG="/var/run/apache2.pid"

-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"

-D DEFAULT_ERRORLOG="logs/error_log"

-D AP_TYPES_CONFIG_FILE="mime.types"

-D SERVER_CONFIG_FILE="apache2.conf"

Procesy ogólnie nie są jakąś specjalnie zawalone poza tym o nazwie 500 - nie wiem za co on odpowiada, ale przyznam, że czasem pod CPU dochodzi do 40.0 - gdy go zabiję, to się odnawia...:

# ps aux

USER CPU %MEM COMMAND

500 16.6 4.6 /usr/bin/php5-c

a tak mam na obecną chwilę z pamięcią:

# free -m

total used free shared buffers cached

Mem: 1024 450 573 0 0 0

-/+ buffers/cache: 450 573

Swap: 0 0 0

Tak wygląda moje .htaccess (w części)

Options -Indexes
Options +FollowSymLinks
RewriteEngine On
DirectoryIndex index.php

<ifModule mod_gzip.c>
 mod_gzip_on Yes
 mod_gzip_dechunk Yes
 mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
 mod_gzip_item_include handler ^cgi-script$
 mod_gzip_item_include mime ^text/.*
 mod_gzip_item_include mime ^application/x-javascript.*
 mod_gzip_item_exclude mime ^image/.*
 mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
#
<ifModule mod_deflate.c>
 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript text/js
</ifModule>
#
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 year"
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/javascript A2592000
ExpiresByType text/js A2592000
</ifModule>
#
<ifModule mod_headers.c>
 Header unset ETag
</ifModule>
#
FileETag None
#
<ifModule mod_headers.c>
 Header unset Last-Modified
</ifModule>

Moje wymuszone ustawienia w php.ini

default_socket_timeout = 30
max_execution_time = 60
max_input_nesting_level = 64
max_input_time = 60
upload_max_filesize = 40M
memory_limit = 500M
post_max_size = 128M
display_errors = On
output_buffering = off
allow_url_fopen = 0
magic_quotes = on
magic_quotes_gpc = on
magic_quotes_runtime = on
safe_mode = off
max_file_uploads = 20

----------------------------------------------------------------------------------------'

OK, problem rozwiązałem. - w części.

eaccelerator.shm_size="32" zmieniłem na eaccelerator.shm_size="16"

Teraz mam kolejny - działa wolniej :)

Jest szansa by jakoś rozłożyć tę pamieć na korzyść acceleratora?

Piekielko.com - sklep z biżuterią etniczną / orientalną należącą do plemienia Kuchi z Pakistanu.

Kupisz: kolczyki, naszyjniki, naszywki, pierścienie, bransolety, torebki, etui, stroje i inne.

Odnośnik do komentarza
Udostępnij na innych stronach

Zainstaluj zamiast apache wydajniejszy serwer HTTP.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności