Omezení využití procesoru pro web na Apache

Janigena

Omezení využití procesoru pro web na Apache
« kdy: 07. 03. 2013, 08:10:11 »
Dobrý den,

mám na serveru Ubuntu 10.04.3 LTS Apache a fotogalerii zenPHOTO (zenphoto.org, napsáno v PHP).

Funguje to dobře, ale když si uživatel nahraje novou galerii a dá vygenerovat náhledy,
což znamená zmenšování a zaostřování obrázků, tak všechna 4 jádra procesoru
na serveru vylítnou na 100 % a zůstanou tak, dokud se operace neprovede.
V té době server nereaguje na žádné jiné požadavky - ostatní weby stojí.

dotaz: Je možné nějak omezit přístup k prostředkům pro konkrétní web?
Např. určit, že smí využít třeba jen 2 jádra, nebo určité procento výkonu?

Dík.
« Poslední změna: 07. 03. 2013, 10:16:56 od Petr Krčmář »


orm

Re:Omezení využití procesoru pro konkrétní web na Apache
« Odpověď #1 kdy: 07. 03. 2013, 08:56:16 »
Dobrý den,

spouštějte web s fotkama pod jiným systémovým uživatelem než pod kterým běží ostatní weby, a tomu uživateli, na úrovni systému, nastavte limit na využití procesoru. Články jak to udělat jsou i zde na rootu, např. zde

http://www.root.cz/clanky/oddelte-od-sebe-uzivatele-serveru-apache-a-php/

Re:Omezení využití procesoru pro web na Apache
« Odpověď #2 kdy: 07. 03. 2013, 12:39:59 »
otazka je jestli by to pomohlo... zjistovali jste jaky proces to vytizi? to je to podstatne - zjistit JAK to ta galerie generuje. Pokud pres GD tak by to slo omezit na apache/php (pak zalezi jestli to mate CGI nebo modul).
Myslim si ale, ze treba pri pouziti imagemagick by bylo zbytecne cokoliv resit na urovni apache.
Děkuji za možnost editace příspěvku.

anonym

Re:Omezení využití procesoru pro web na Apache
« Odpověď #3 kdy: 07. 03. 2013, 13:54:58 »
alternativne bych asi sahnul do aplikace a nechal ji ty obrazky generovat asynchrone - PHP by poslal prikaz nejake samostat sluzbe (ktera pobezi s nizsi prioritou), ktera by obrazky prohnala pres imagemagick a ulozila tam kde je PHP ceka
jen je potreba pak pri zobrazeni pocitat s tim ze obrazek muze byt jeste ve fronte

Janigena

Re:Omezení využití procesoru pro konkrétní web na Apache
« Odpověď #4 kdy: 07. 03. 2013, 15:59:12 »
Články jak to udělat jsou i zde na rootu, např. zde
http://www.root.cz/clanky/oddelte-od-sebe-uzivatele-serveru-apache-a-php/

Díky za odpovědi.

Udělal jsem to podle toho článku, ale nevím co dál.
Přesunul jsem fotogalerii do zvláštního podadresáře, udělal k tomu virtual host, aby se to spouštělo pod daným uživatelem.
Stránky jsou funkční, moduly mod_suexec a mod_fcgid jsou načtené, ale ve výpisu procesů (htop) je stejně vidět jenom www-data.
Při generování náhledů spotřebovává výkon /usr/sbin/apache2 -k start spuštěný uživatelem www-data.
Myslel jsem, že při použití Suexec uvidím nějaký proces spuštěný určeným uživatelem. Jak ověřit, že to vůbec funguje?