Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: tomtomas 22 Února 2013, 19:40:57
-
Zdravím,
na mém Ubuntu server 12.04 mám poměrně veliký problém. Na serveru běží webserver (apache2 + mysql) a při každé refreshi webu se přidá nový proces a nezavře se, a když je plná ram (512MB) i swap (700MB) tak musím server restartovat, cpu pak běží taky na 100%. Tzn. kdokoli mi vleze na web a podrží F5 tak to padne a já to musím restartovat. Nevíte prosím čím by to mohlo být?
Děkuji předem.
-
Pro začátek je potřeba vyloučit chybu na straně otevíraného webu.
Vytvořte nějaký jednoduchý html soubor a zkuste refreshovat.
Pokud se problém neopakuje, tak je chyba na straně webu.
Pokud se opakuje, tak zkuste přeinstalovat apache.
(dle mého názoru je 512MB RAM na provozování webu s MySQL poměrně málo)
-
Běží na tom 3 Wordpressy zcela bez problémů asi půl roku. Když refreshuji HTML soubor nic se neděje, ale když už se jedná o php tak to zůstává ten proces nezavřený.
Přeinstalovat apache by bylo asi fajn, ale nevím jak, protože sudo apt-get autoremove ani podobné příkazy jej prostě nesmažou. (Původně instalováno přes tasksel).
-
Zkuste tohle:
sudo apt-get purge apache2 php5 && sudo apt-get install apache2 php5
Pokud by náhodou nešlo php vůbec, tak jej doinstalujte takto:
sudo apt-get install libapache2-mod-php5
sudo service apache2 restart
Po provedení výše uvedených příkazů dojde ke kompletnímu vymazání veškerých nastavení apache a php. Pokud chcete prvně zkusit reinstalaci bez vymazání nastavení, tak jen místo purge použijte remove.
-
Dobrá, když zadám tyto příkazy tam databáze předpokládám zůstanou zachovány, jak to, ale bude se složkou /var/www?
-
Není nic jednoduššího než si ji před instalací zálohovat.
sudo cp -R /var/www /var/zaloha
-
Záloha provedena (mělo mě to napadnout hned :D).
Divné, ale je, že poté co zadám tento příkaz:
sudo apt-get purge apache2 php5 && sudo apt-get install apache2 php5
a restartuji server, weby jedou dál jako by se nic nestalo. Dohromady se odstranilo pouze nějakých 18MB... takže jsem z toho trochu zmaten.
Tzn. problém stále trvá :(...
-
Divné, můžeš zkusit ještě tohle
1. nahrejte na server tento jednoduchý php soubor a zkuste, jej otevřít
<?php
echo "Nějaký php kód, co otestuje server";
?>
2. nainstalujte si lamp u sebe a spusťte weby na localhostu
Nevím proč, ale mám pocit, že chyba je někde na straně wp(v tom případě by ale mělo po timeoutu dojít k zabití php scriptu a ukončení apache procesu) ???
Nic jiného mne už nenapadá.
-
Nakonec jsem to pomocí tohoto příkazu odinstaloval:
sudo apt-get purge apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5
a pomocí
sudo apt-get install apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5
to mi, ale bohužel vyhazuje chybu:
.....
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Processing triggers for ufw ...
Setting up apache2.2-bin (2.2.22-1ubuntu1.2) ...
Setting up apache2-utils (2.2.22-1ubuntu1.2) ...
Setting up apache2.2-common (2.2.22-1ubuntu1.2) ...
ERROR: Module alias not properly enabled: /etc/apache2/mods-enabled/alias.load is a real file, not touching it
dpkg: error processing apache2.2-common (--configure):
subprocess installed post-installation script returned error exit status 1
E: Sub-process /usr/bin/dpkg returned an error code (1)
a apache už nejede vůbec...
EDIT: Tak to už jsem také vyřešil, nic mi žádnou chybu nevyhazuje a balíky co jsem odstranil jsem nainstaloval zpět.
Problém to, ale dělá ten samý, jdu zkusit reinstalovat php5...
EDIT 2: PHP5 reinstalováno a stále nic... pořád když podržím F5 na php webu tak to "zasere" ram a server musím restartovat...
-
- odrez z php vsechny extensions, ktery nepotrebujes (co mas nainstalovano zjistis
dpkg --get-selections | grep php5
nemyslim si, ze bys potreboval neco vic nez tohle:
php5-cgi install
php5-cli install
php5-common install
php5-curl install
php5-gd install
php5-mysql install
php5-xsl install
- zvazit, jesli (pokud to tak je - a myslim si ze jo) je dobrej napad to jed pod mod-php a nezkusit treba php-fpm, pripadne se uplne vysrat na apache a jit do nginx/php-fpm
- snizit pocet procesu apache, treba i snizit pocet requestu po kterym se proces apache reloadne, pripadne nastavit v tech phpkach memory_limit na nejakou normalni hodnotu
- zkusit nahodit novejsi verzi php (dotdeb.org)
- vim ja, pomuze asi cokoliv - podle toho, ze ti to zere i cpu, mas tam asi neco narocnejsiho (vypocty, db?) - memcache, redis, nebo aspon nejaka cache ti urcite neuskodi
-
Jsou tam právě databáze a jak to teď tak pozoruji tak zůstávají otevřeny právě ty a nezavírají se, takže asi ony vyžírají ram....
Tzn. něco s MySQL?
-
moc nechapu teda, predtim si mluvil o apachi. takze to dela mysql server?
zkus pomalu menit nastaveni mysql:
- zmensovat nejak rozumne - key_buffer, thread_stack, max_connections, table_cache, query_cache_size
- vypnout slowlog a binlog, pokud bezi
- pokud mas zaplej slow log, tak se podivej, jesli tam nejsou nejaky uber dotazy co zerou hodne casu, pak je kdyztak pripadne zkus nejak zomptimalizovat / pouzit lepsi indexy atd..
a taky:
- v php pouzivat pconnect namisto connect (permanentni spojeni) - sory uz sem php to delsi dobu nevidel, tak nevim, co tam ted frci
- jak sem psal, pouzivat cache(!) - memcache, redis, filecache..
hele je to takovy strileni od boku, treba bych z dotdebu taky zkusil nejaky novejsi mysql, pokud je
-
No mě se právě zdá vše normální, je to v podstatě default konfigurace...
Mimochodem poslal jsem ti SZ :)...
EDIT: Přikládám screen a můžete posoudit sami...
[příloha smazaná administrátorem]