Hi all!
Egy webszerverről van szó. EZ a weboldal fut rajta, itt pedig a Munin statisztika található.
A statból nekem az derül ki, hogy nem a cpu vagy a hdd terhelődik túl és nem tűnik kevésnek a memória. Elvileg nem DDoS-olnak, az apache log nem árulkodik semmi ilyenről. A napi lapbetöltés 8-10 ezer.
A weboldalról annyit, hogy képnézegető az oldal, majd minden adatbázis lekérdezések cache-elve vannak, load nem magas, htop-ban a cpu terheltség is alacsony. Jelenleg nincs ötletem, hogy a lassulást mi okozza.
apache2.conf-ban a MaxClient mindenhol 400, ha esetleg a szálakkal lenne gond. A hálókártya esetleg nem bírná a túl sok kapcsolati szálat?
- 4674 megtekintés
Hozzászólások
Nem a mysql kapcsolatok fogynak el véletlenül? Okozhatja beragadó queryk halmaza is, a show full processlist-el kiderül.
- A hozzászóláshoz be kell jelentkezni
Mivel sok esetben előre vannak json-nal kódolva mentve a tipikus adatbázis lekérdezések file-ba, így nem túl gyakori dolog a mysql_query. Kapcsolódás persze van minden lapbetöltéskor, de azok le is vannak vissza zárva.
Mindenesetre köszi a tippet, holnap délután nagyobb terhelés idején megnézem hátha ez mutat valami anomáliát.
Kollégám az Apache-ra gyanakodik, időközönként előfordul olyan, hogy csak ez a weboldal nem tölt be, más weblap megjelenik ugyanarról a szerverről (bár ez lehet, hogy csak a cache-nek köszönhető...), de van, hogy abszolút nem válaszol az apache és csak a /etc/init.d/apache2 restart segít...
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Fisher tippje is jó, ha cgi vagy fpm -es php van mögötte az is elfogyhat hirtelen.
- A hozzászóláshoz be kell jelentkezni
Ha fastcgi, akkor ezt nézd meg: http://stackoverflow.com/questions/12267618/apache-fastcgi-error-503
- A hozzászóláshoz be kell jelentkezni
IspCP Omega van a szerveren, utánagugliztam ezek a beállítások elvileg /etc/apache2/mods-enabled/fcgid_ispcp.conf helyen kellene legyenek, szal oda szúrtam be azt a pár sort.
Újraindítás után egy ideig jól megy a rendszer, aztán hal le idővel. Tehát most restart volt, megy, meglátom meddig.
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
apache.conf-ba is belenéznék.
- A hozzászóláshoz be kell jelentkezni
find: `*apache.conf*': No such file or directory
Amúgy most visszaállítottunk minden config file-t alap, gyári beállításokra. A helyzet változatlan. Fut az oldal kb 5 percig, aztán belassul és "Nincsenek adatok".
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Amúgy apache2.conf és a /etc/apache2-be található elvileg.
- A hozzászóláshoz be kell jelentkezni
root@ks3289370:/var/log/apache2# ls -l /etc/apache2
total 72
-rw-r--r-- 1 root root 8076 Dec 15 11:25 apache2.conf
drwxr-xr-x 2 root root 4096 Dec 10 19:43 conf.d
-rw-r--r-- 1 root root 1169 Nov 30 2012 envvars
-rw-r--r-- 1 root root 0 Feb 25 2013 httpd.conf
drwxr-xr-x 2 root root 4096 Dec 10 19:43 ispcp
-rw-r--r-- 1 root root 31063 Nov 30 2012 magic
drwxr-xr-x 2 root root 4096 Feb 25 2013 mods-available
drwxr-xr-x 2 root root 4096 Feb 25 2013 mods-enabled
-rw-r--r-- 1 root root 751 Dec 15 11:57 ports.conf
drwxr-xr-x 2 root root 4096 Feb 25 2013 sites-available
drwxr-xr-x 2 root root 4096 Feb 25 2013 sites-enabled
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Igaz ez i-mscp de ispcp omega forkja (azért az i-mscp jobban karbantartott)
Szóval a conf fálj:
# MODULE SETUP: Do not change this unless you know what you're doing
########################################################################
AddHandler fcgid-script .php .php5
SocketPath /var/lib/apache2/fcgid/sock
FcgidMaxRequestsPerProcess 1000
FcgidPassHeader AUTHORIZATION
# ADMIN PREFERENCES: These control different limits as described below
# Notice: These settings can be overwritten for a single website by
# specifying them inside the website's custom configuration file:
# /etc/apache2/ispcp/website.tld.conf
########################################################################
# Maximum request time in seconds (a script will be killed if it
# runs for more time than that)
FcgidBusyTimeout 300
# Maximum time before the request generates some data (a script will be
# killed if it doesn't generate any output before this number of seconds)
FcgidIOTimeout 300
# Maximum request length in bytes. No request larger than that will ever
# be processed, so this has to be higher than the biggest file upload you
# want to allow.
FcgidMaxRequestLen 104857600
# PERFORMANCE SETTINGS: Used to limit the memory requirements
########################################################################
# Maximum number of php5-cgi processes allow to run among all websites
FcgidMaxProcesses 200
# Maximum number of php5-cgi processes allowed to run for a single website
FcgidMaxProcessesPerClass 20
# Minimum number of php5-cgi processes running for each website. Only set
# this to 1 or higher if your server has very few domains. Do not set it
# higher if you have many domains, even if they are rarely accessed, or
# you will eat up all of the server's RAM and force it to swap to death.
FcgidMinProcessesPerClass 0
- A hozzászóláshoz be kell jelentkezni
Ez most melyik file?
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
fcgid_ispcp.conf lenne csak nálam fcgid_imscp.conf.
- A hozzászóláshoz be kell jelentkezni
Hopp, ez a /etc/apache2/mods-enabled/fcgid_ispcp.conf file nálam, viszont az
Fcgid kezdetű bejegyzések nincsenek benne.
Ezt tartalmazza:
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php .php5
SocketPath /var/lib/apache2/fcgid/sock
IdleTimeout 600
IdleScanInterval 120
BusyTimeout 300
BusyScanInterval 120
ErrorScanInterval 3
ZombieScanInterval 3
ProcessLifeTime 30
SpawnScoreUpLimit 10
SpawnScore 1
TerminationScore 2
MaxProcessCount 200
DefaultMaxClassProcessCount 10
DefaultMinClassProcessCount 1
IPCCommTimeout 600
MaxRequestsPerProcess 300
FcgidConnectTimeout 60
MaxRequestLen 134217728
</IfModule>
Még korábban hozzáfűztem ezeket a beállításokat, nem volt rá semmi reakció. Esetleg írjam felül?
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Egy apachectl -M kimenet jól jönne.
- A hozzászóláshoz be kell jelentkezni
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_worker_module (static)
http_module (static)
so_module (static)
actions_module (shared)
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)
cgid_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
fcgid_module (shared)
mime_module (shared)
negotiation_module (shared)
proxy_module (shared)
proxy_http_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
suexec_module (shared)
Syntax OK
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
apachectl -v kimenet is kellene.
Amúgy ezért nem stimmel a conf fájlunk.
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
- A hozzászóláshoz be kell jelentkezni
Server version: Apache/2.2.16 (Debian)
Server built: Nov 30 2012 08:58:38
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Akkor próbáld ki ezt a conf-t:
< IfModule fcgid_module>
AddHandler fcgid-script .php .php5
SocketPath /var/lib/apache2/fcgid/sock
FcgidMaxRequestsPerProcess 1000
FcgidPassHeader AUTHORIZATION
FcgidBusyTimeout 300
FcgidIOTimeout 300
FcgidMaxRequestLen 104857600
FcgidMaxProcesses 200
FcgidMaxProcessesPerClass 20
FcgidMinProcessesPerClass 0
< /IfModule>
Eredetiről mentést csinálj
- A hozzászóláshoz be kell jelentkezni
Még bejönnek az oldalak, de időközönként nagyon lassú.
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Kicseréltem a IfModule mod_fcgid.c tartalmát arra, amit eredetileg belinkeltetek. Jelenleg van, hogy belassul, de még nem halt eddig le.
De. Lehalt.
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Dobj egy privátot és beállítok neked mindent.
- A hozzászóláshoz be kell jelentkezni
Esetleg elárulnád, hogy hogyan kezdenéd?
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
apache2.conf
fcgid_ispcp.conf
Esetleg van-e valami olyan dolog valamelyik oldalon ami képes a proccess limitet túllépni így az apache halálát előidézni.
- A hozzászóláshoz be kell jelentkezni
Programszinten van adatbázis cache-elés. Most néztem meg, bő 47 ezer cache file volt az egyik cache mappában.
Ezeket most töröltem, a php-ban a cache-elést kikapcsoltam.
Egyelőre működik, megnézzük meddig.
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Ugyanúgy lelassul 5-10 perc után.
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Akkor vadul nézni a logokat, valahová, valaminek írnia kell hogy mi a baja.
- A hozzászóláshoz be kell jelentkezni
Apache log rendbe van ?
- A hozzászóláshoz be kell jelentkezni
Ezt találtam most a /var/log/apache2/default-error.log-ban:
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
- Miért 320.000 a max apache process count? Kicsit soknak tartom. (Továbbá hangolnám a min és max spare server értékeket is, mert ha az idle 0-ra esik, akkor bizony belassul, és ha megtelik a backlog is, akkor el fogja dobni a kérést)
- Monitoroznám, hogy mennyi a fastcgi processz szám oldalanként, mert előfordulhat, hogy a 20-as MaxProcessPerClass kevés.
Egyszer készítettem rá egy munin plugint is: http://pastebin.com/zHVWaACi
A $cmd változó tartalmát kell olyanra faragni, hogy a megfelelő processzek adatait adja vissza.
(Szerk: utóbbiról egyébként a virtualhost logjába panaszkodik)
- A hozzászóláshoz be kell jelentkezni
Lehet a tegnap óta tartó állítgatás miatt lehet.
Az a FcgidMaxProcessesPerClass-t felvettem 40-re.
A kód, amit belinkeltél van hozzá valami manual? Hogyan használjam?
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Saját használatra készült, nem nagyon van hozzá manual.
Ha elküldöd a /bin/ps aux | /bin/grep -i php-cgi | /bin/grep -v grep kimenetét (akár privátban), akkor visszaküldöm, hogy mi szerepeljen pontosan a $cmd változóban.
A telepítése úgy néz ki, hogy a monitorozandó gép /usr/share/munin/plugins könyvtárba elmented a scriptet php_cgi_ fájlnévvel, adsz rá futtatási jogot, majd a /etc/munin/plugins könyvtár alá csinálsz egy symlinket a fájlra php_cgi_count néven (tud memóriát is monitorozni, akkor php_cgi_memory néven kell létrehozni a symlinket).
- A hozzászóláshoz be kell jelentkezni
Nincs benne semmi olyan, ami annyira titkos lenne. :)
Az eredmény
Annyi, hogy nekem php5-cgi van, de gondolom már feltűnt. :)
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Az új beállítások óta lassú a rendszer, de nem hal le - viszont rengeteg a zombi process.
Továbbra se stimmel itt valami. :/
-------------
"Az akadályok nem zúzhatnak össze. Minden akadály enged az eltökélt szándéknak."
- A hozzászóláshoz be kell jelentkezni
Jó lett az oldal?
- A hozzászóláshoz be kell jelentkezni