Производительность: как ограничить длительность процесса апача (и почему они потребляют так много памяти)

Главные вкладки

Аватар пользователя Valeratal Valeratal 12 января 2008 в 14:34

После переезда на VPS (500 мгцб 256м) открываю для себя новые "америки"

вот что вижу по команде то ( с сортировкой по потреблению памяти)

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
17932 psaadm    15   0  127m  39m  22m S           0 15.3   0:02.80 httpsd
17953 apache    15   0  304m  34m 4316 S            0 13.6   0:09.99 httpd
32045 apache    16   0  304m  34m 4300 S          0 13.6   0:03.80 httpd
31822 apache    16   0  304m  34m 4288 S         1 13.5   0:01.97 httpd
32004 apache    15   0  303m  34m 4172 S          0 13.5   0:01.49 httpd
31887 apache    16   0  303m  34m 4272 S          0 13.4   0:03.71 httpd
17927 psaadm    15   0  122m  31m  18m S         0 12.3   0:01.81 httpsd
18012 drweb     16   0 20784  16m 1436 S         0  6.5   0:06.27 drwebd
17880 mysql     15   0  148m  16m 5072 S         0  6.3   0:01.54 mysqld
17711 root      16   0  278m  14m 7268 S         0  5.6   0:00.18 httpd
17923 root      16   0  112m 6076 3416 S         0  2.3   0:00.02 httpsd
17730 apache    16   0  223m 4796  464 S        0  1.8   0:00.00 httpd
18197 webadmin  16   0 74644 3708 2488 S    0  1.4   0:16.22 in.proftpd
 1477 webadmin  16   0 74128 3548 2484 S     0  1.4   0:00.05 in.proftpd
17760 named     22   0  200m 3528 1744 S     0  1.3   0:00.00 named
20442 root      15   0 80128 3180 2452 S    0  1.2   0:00.19 sshd
20468 root      16   0 10784 1448 1124 S    0  0.6   0:00.03 bash

Сразу скажу, в этот момент друпальная часть сайта не работает (выключена на техобслуживание из админки)
на сайте находятся файлы, примерно такого кода

<? include("http://www.hr-portal.ru/_top.php")?>
<title>Должностная инструкция агента коммерческого</title>
<? include("http://www.hr-portal.ru/_top2.php")?>
  <p><a href="/pages/tkn/kd.php">Кадровое делопроизводство </a>\ <a href="/pages/Di/diall.php">Должностные инструкции </a></p>
  <h1>Должностная инструкция агента коммерческого</h1><? include("/pages/ya.php");?>
  <p align="right"><a href="http://www.test4you.webhost.ru/pages/33/di/001.rtf" rel="nofollow" target="_blank"><strong>Открыть в формате WORD</strong></a> <strong><img src="/img/word7.jpg" alt="Должностная инструкция агента коммерческого" width="32" height="32"></strong></p>
  <p align="center"><b>I. Общие положения</b></p>
  <p>1. Коммерческий агент относится к категории технических исполнителей.</p>
  <p>2. На должность коммерческого агента назначается лицо, имеющее среднее профессиональное образование и специальная подготовка по установленной программе без предъявления требований к стажу работы  ............и тд.</p>
    <? include("http://www.hr-portal.ru/_down.php")?>

То есть просто файлы в которые инлюдится шапки, сайдбары и футер
Вот я не понимаю 2 вещей
1. Почему процессы апачевские в количестве нескольких штук так много потребляют
2. Почему админка плеска (в количестве 3 процессов) потреблеят почти половину оперативной памяти - это таки должно быть?

подскижет, кто в теме

Комментарии

Аватар пользователя igor701 igor701 12 января 2008 в 16:39

У меня для гига оперативки каждый апач потребляет 2.1% памяти, а каждый mysql - вообще 6.4%
Ну база понятно - для скорости я добавил ей памяти. А вот апач - наверное это php обработчик. У меня он как модуль.

Аватар пользователя Valeratal Valeratal 12 января 2008 в 16:46

вычитал, что инклюд с двойными кавычками не правильно использовать, так как двойные кавычки php "воспринимает" как переменную, и тем самым больше нагружает сервер
учитываю что у меня их много, попробую поменять

Аватар пользователя VLAD_X VLAD_X 13 января 2008 в 10:21

Посмотрите и уберите все лишние модули из Apache, они могут памяти отъедать.
В mod_php память ест memory_limit (как я понимаю, php выделяет себе всю указанную память, но реально использует далеко не всю).
Ещё потребляют память всякие акселераторы/оптимизаторы: н-р, eaccelerator старается положить все данные в shared memory.
Вот в сумме и набегает столько много.

Думаю, "инклюд с двойными кавычками" граздо меньше потребляет, чтобы волноваться из-за него Smile

Админка Плеска - да, она жирная Smile
Если она не очень-то и нужна и можете (умеете) руками что-то изменять в системе - убивайте подобные админки.

То же самое могу сказать по отношению и к другим сервисам типа proftpd или named: если вы ими не пользуетесь - то выключайте их.

Аватар пользователя orbisnull orbisnull 13 января 2008 в 9:46

include("http://www.hr-portal.ru/_top.php") - неправильно, нафига цеплять по внешнему php скрипты?... Если это ваш сервер то на каждый запрос вы генерити двойную нагрузку на апач..., плеск не юзал но слышыл что жрет много. ПХП лучше как fastcgi запустить, перед апачем поставить ngix, поставить и настроить eAccelerator...

Аватар пользователя VLAD_X VLAD_X 14 января 2008 в 16:15

Лучше всего, я думаю. цеплять фалы так:

require_once $_SERVER['DOCUMENT_ROOT'].'/_top.php';
  • разницу между require и include не помню, но помню, давно когда-то решил всегда использовать require
  • _once гарантирует отсутствие ошибок, если попробуете где-то повторно подключить уже подключенный файл
  • код без скобок читается лучше
  • ну а путь к подлючаемым файлам удобнее всего отсчитывать от $_SERVER['DOCUMENT_ROOT']: ссылки остаются абсолютными и не надо загружать файл через web
Аватар пользователя ZAH@drupal.org ZAH@drupal.org 22 февраля 2008 в 14:10

разница между require и include - первый при неудаче инклайда даёт фалал еррор, другой - только варнинг. Вот и вся разница. Пихать везде require - глупость.

Аватар пользователя kiev1 kiev1 22 февраля 2008 в 15:10

без промежуточного проксика типа nginx ничего работать не будет, или будет как-то до первого наплыва поисковых ботов

Аватар пользователя Valeratal Valeratal 26 февраля 2008 в 20:48

Перешел на более лучший тариф(+128 памяти и +256 проца), Отключаю админку (которая памяти до фига жрала - около 120 мб)
Полет нормальный, гостей (ботов) по 150 штук

Аватар пользователя kiev1 kiev1 27 февраля 2008 в 4:58

> как ограничить длительность процесса апача
ну можно, да, его ограничить если то будет просто белая страница, есть такая настройка в пхп