Apache процеси - Memory и модули.

cyberpower

New member
Здравейте,

Имам няколко въпроса, като начало колко памет според вас е нормално да харчи един Apache(prefork) процес. Знам че това варира в зависимост от включените модули, за това въпроса е по скоро колко памет трябва да харчи с включени само основните модули без които не може.

Въпроса ми е породен от следния факт като погледна през Webmin -> Running Processes -> Memory
15180 apache 64332 kB /usr/sbin/httpd
15171 apache 64116 kB /usr/sbin/httpd
15182 apache 64084 kB /usr/sbin/httpd
15244 apache 60580 kB /usr/sbin/httpd
15238 apache 58840 kB /usr/sbin/httpd
15239 apache 58640 kB /usr/sbin/httpd

Ето и стойностите за RSS
> ps -ylChttpd --sort=rss |less
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 48 15334 1255 0 75 0 35852 15696 374085 ? 00:00:02 httpd
S 48 15333 1255 0 75 0 37496 15775 375751 ? 00:00:02 httpd
S 48 15244 1255 0 75 0 38012 15153 374482 ? 00:00:04 httpd
S 48 15332 1255 0 75 0 38892 16084 375751 ? 00:00:01 httpd
S 48 15239 1255 0 75 0 42156 15937 374312 ? 00:00:05 httpd
S 48 15180 1255 0 75 0 43240 16147 374307 ? 00:00:09 httpd

От това което чета по интернет последните дни разбирам че един процес трябва да харчи средно по 15-20MB, а при мен е поне 3 пъти повече с което значително намаляват и конкурентните заявки които може да изпълни съвъра.

Предполагам че имам включени доста ненужни модули ето и пълния списък:

core prefork http_core mod_so mod_auth_basic mod_authn_file mod_authz_host mod_authz_user mod_include mod_log_config mod_env mod_headers mod_setenvif mod_mime mod_autoindex mod_dir mod_actions mod_alias mod_rewrite mod_cgi mod_version mod_php5

Тук виждам само 2 модула които ми говорят нещо mod_rewrite и mod_php5 и трябва да са включени. Какво ми трябва задължително от горните и какво мога да изключа(самия сайт е на Drupal ако има значение).

Как става самото изключване на модулите през httpd.conf или трябва да се компилира на ново?
 
Последно редактирано:
За: Apache процеси - Memory и модули.

За: Apache процеси - Memory и модули.

Ако ти трябва малък memory footprint използвай nginx или lighttpd.
Като цяло apache не ти е проблем при положение, че използваш drupal.
 
Re: Apache процеси - Memory и модули.

Каквото и да си говорим опита ми до сега, не че имам много голям опит, но все пак това което забелязвам от тестваните системи е че PHP скриптовете вървят най-добре с Apache prefork.

В някой момент мога да сложа nginx за статичните файлове, но в момента нямам нито време нито познания за да го направя така че остава на по заден план.

За сега искам просто да се отърва от ненужните модули на Apache за да може сървъра да отговаря на повечко конкурентни заявки когато се наложи.
 
Re: Apache процеси - Memory и модули.

Имай предвид, че повечето от тази памет, която виждаш е споделена между всеки от prefork-натите процеси. Например ти виждаш 8 по 40м, но реално използваната памет е нещо от типа на 30м + 8 по 10м. Аз лично не бих пипал нищо докато не почне да ти създава проблеми 🙂
 
Re: Apache процеси - Memory и модули.

Не съм много сигурен че е споделена, защото препоръчват като си задаваме MaxClients да го направим по следния начин (Налична памет-Памет за MySQL)/Памет за Apache процес(RSS)
 
Re: Apache процеси - Memory и модули.

Малко ти е грешна логиката - Налична памет = MySQL+ Apache+ Webmin + OS.

mod_rewrite - модул за пренаписване на адреси. Използва се за Search Friendly Urls
mod_php5 - модула на php-то - php handler т.е. текущото ти DSO. Доколкото си спомням беше с fastCGI но той гълта RAM, а с тези анемични размери на паметта на VPS-а ти, трудно ще се вместиш.

пусни apache2ctl -V (или httpd -V) за повече информация относно модулите.
 
За: Apache процеси - Memory и модули.

За: Apache процеси - Memory и модули.

При мен е (2.2.15 на ЦентОС):
apachectl -t -D DUMP_MODULES

Иначе като гледам колко излишни модули имам...
За сега не ми е проблем де, но един ден трябва да седна и да видя кой реално не се ползва и да ги поизключа.
Може би трябва да останат 4-5, но за много от тях не съм сигурен и е малко кофти на лайв да се еб@вам. 😀
 
Re: Apache процеси - Memory и модули.

Вероято основната част от паметта се хаби от php модула. Останалите активни модули са стандартни и без тях няма да работи правилно апачето, така че не те съветвам да ги махаш. По-скоро виж дали нямаш излишни модули инсталирани към php (с функцията phpinfo()). Когато php е инсталирано като apache модул, а не като cgi/fastcgi, дори за да върне картинка или css файл, процеса на апаче е натоварено и с php модула, независимо че той не се ползва за конретния request. Така че всичките процеси хабят повече рам независимо каква информация обработват.
 
За: Apache процеси - Memory и модули.

За: Apache процеси - Memory и модули.

Абе като гледам колегата колко малко рам му ползват httpd и как се оплаква, взех да понаправя някоя промяна. 😀
До тук съм с по 30мб на процес "напред".
Чета за всеки пуснат модул какво прави и режа ако не го ползвам и тествам дали всичко работи. 🙂
Не съм се замислял до сега, понеже рам има и е добре да се ползва, но само ако има нужда.
Например като разкарах консервативните настройки на MySQL-а и сега си харчи рам доволно, но пък работи доста по-бързо.
Същата работа и с APC.
Но Апаче модулите са ми в повече.
 
За: Apache процеси - Memory и модули.

За: Apache процеси - Memory и модули.

/off
Само аз ли не виждам бутон за редакция на мнение?
//

Това за php модулите също е интересно, ще го погледна, благодаря. 🙂
 

Back
Горе