Помощь в оптимизации VPS

P
На сайте с 22.01.2010
Offline
3
9696

Привет.

Заявленные параметры VPS: 5.120 MB DDR-RAM / 10.240 MB FlexRAM

Проблема: процессы апача валятся с ошибками

[Wed Feb 03 15:12:11 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process

[Wed Feb 03 15:12:21 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 03 15:12:31 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 03 15:12:41 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process

Вывод cat /proc/user_beancounters

uid  resource                     held              maxheld              barrier                limit              failcnt

251030: kmemsize 83005797 87678696 87662592 97402880 6253

Видим, что только kmemsize имеет fail каунтер.

Вывод ps -ylC httpd --sort:rss

S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD

Z 48 11522 9495 0 76 0 0 0 exit ? 00:00:00 httpd <defunct>
Z 48 18302 9495 0 75 0 0 0 exit ? 00:00:01 httpd <defunct>
Z 48 32446 9495 0 75 0 0 0 exit ? 00:00:01 httpd <defunct>
Z 48 5748 9495 0 75 0 0 0 exit ? 00:00:01 httpd <defunct>
Z 48 7931 9495 0 75 0 0 0 exit ? 00:00:01 httpd <defunct>
S 0 9495 1 0 81 0 9752 55250 109953 ? 00:00:00 httpd
S 48 25771 9495 0 76 0 9808 55611 flock_ ? 00:00:00 httpd
S 48 28427 9495 0 75 0 11336 56117 114379 ? 00:00:00 httpd
S 48 28323 9495 0 75 0 11408 56159 flock_ ? 00:00:00 httpd
S 48 25773 9495 0 76 0 11520 56152 flock_ ? 00:00:00 httpd
S 48 11785 9495 0 76 0 11784 56212 113340 ? 00:00:00 httpd
S 48 16261 9495 0 75 0 11888 56189 flock_ ? 00:00:00 httpd
S 48 28424 9495 0 75 0 12028 56155 114873 ? 00:00:00 httpd
S 48 22121 9495 0 75 0 12056 56245 flock_ ? 00:00:00 httpd
S 48 28421 9495 1 76 0 12172 56370 111685 ? 00:00:00 httpd
S 48 24051 9495 0 75 0 12208 56114 113512 ? 00:00:00 httpd
S 48 24052 9495 0 75 0 12252 56155 110680 ? 00:00:00 httpd
S 48 22127 9495 0 76 0 12268 56158 flock_ ? 00:00:00 httpd
S 48 25770 9495 0 76 0 12288 56361 110240 ? 00:00:00 httpd
S 48 32457 9495 0 75 0 12324 56298 111754 ? 00:00:00 httpd
S 48 25751 9495 0 75 0 12324 56163 113524 ? 00:00:00 httpd
S 48 25783 9495 0 76 0 12344 56170 flock_ ? 00:00:00 httpd
S 48 12069 9495 0 75 0 12372 56198 flock_ ? 00:00:00 httpd
S 48 25776 9495 0 75 0 12444 56232 112842 ? 00:00:00 httpd
S 48 25781 9495 1 75 0 12460 56179 flock_ ? 00:00:00 httpd
S 48 16256 9495 0 75 0 12476 56198 flock_ ? 00:00:00 httpd
S 48 26445 9495 0 76 0 12492 56256 flock_ ? 00:00:00 httpd
S 48 19906 9495 0 75 0 12544 56244 111630 ? 00:00:00 httpd
S 48 16264 9495 0 75 0 12572 56197 flock_ ? 00:00:00 httpd
S 48 27755 9495 0 75 0 12576 56229 113369 ? 00:00:01 httpd
S 48 25774 9495 0 76 0 12576 56239 flock_ ? 00:00:00 httpd
S 48 11811 9495 0 75 0 12588 56250 113731 ? 00:00:00 httpd
S 48 28422 9495 0 75 0 12648 56294 110810 ? 00:00:00 httpd
S 48 9924 9495 0 76 0 12656 56251 112362 ? 00:00:00 httpd
S 48 19921 9495 1 75 0 12672 56231 flock_ ? 00:00:00 httpd
S 48 24048 9495 1 75 0 12776 56223 109953 ? 00:00:00 httpd
S 48 26441 9495 0 75 0 12784 56302 112883 ? 00:00:00 httpd
S 48 26443 9495 0 76 0 12788 56260 109953 ? 00:00:00 httpd
S 48 27758 9495 0 75 0 12860 56298 109953 ? 00:00:00 httpd
S 48 25760 9495 1 75 0 12880 56269 flock_ ? 00:00:00 httpd
S 48 19900 9495 0 76 0 12956 56317 flock_ ? 00:00:00 httpd
S 48 28423 9495 0 75 0 12980 56415 114579 ? 00:00:00 httpd
S 48 19898 9495 0 75 0 13024 56327 109953 ? 00:00:00 httpd
S 48 22117 9495 0 75 0 13068 56318 112883 ? 00:00:00 httpd
S 48 3138 9495 0 75 0 13076 56362 flock_ ? 00:00:00 httpd
S 48 11778 9495 0 75 0 13084 56334 flock_ ? 00:00:00 httpd
S 48 28425 9495 1 75 0 13092 56200 114864 ? 00:00:00 httpd
S 48 12074 9495 0 76 0 13248 56267 111930 ? 00:00:00 httpd
S 48 32468 9495 0 76 0 13252 56462 110034 ? 00:00:00 httpd
S 48 25786 9495 1 76 0 13284 56257 111878 ? 00:00:00 httpd
S 48 3131 9495 0 75 0 13304 56268 111091 ? 00:00:00 httpd
S 48 14258 9495 0 75 0 13316 56490 111732 ? 00:00:00 httpd
S 48 19911 9495 1 75 0 13316 56244 114632 ? 00:00:00 httpd
S 48 9925 9495 0 75 0 13332 56287 109953 ? 00:00:00 httpd
S 48 12071 9495 0 76 0 13360 56407 flock_ ? 00:00:00 httpd
S 48 14259 9495 0 76 0 13364 56276 114539 ? 00:00:00 httpd
S 48 12067 9495 0 76 0 13384 56284 109953 ? 00:00:00 httpd
S 48 10146 9495 0 75 0 13392 56315 flock_ ? 00:00:00 httpd
S 48 7319 9495 0 76 0 13404 56244 109953 ? 00:00:00 httpd
S 48 11537 9495 0 76 0 13432 56283 111810 ? 00:00:00 httpd
S 48 22007 9495 0 75 0 13440 56278 111722 ? 00:00:00 httpd
S 48 5745 9495 0 75 0 13444 56271 109953 ? 00:00:00 httpd
S 48 9914 9495 0 76 0 13444 56270 114368 ? 00:00:00 httpd
S 48 25769 9495 0 75 0 13444 56292 112793 ? 00:00:00 httpd
S 48 19907 9495 0 76 0 13448 56288 114589 ? 00:00:00 httpd
S 48 9923 9495 0 76 0 13460 56304 109953 ? 00:00:00 httpd
S 48 19899 9495 0 76 0 13460 56298 112254 ? 00:00:00 httpd
S 48 7320 9495 0 76 0 13472 56285 109953 ? 00:00:00 httpd
S 48 16236 9495 0 76 0 13476 56315 flock_ ? 00:00:00 httpd
S 48 12077 9495 0 76 0 13480 56312 113132 ? 00:00:00 httpd
S 48 16139 9495 0 75 0 13488 56269 114079 ? 00:00:00 httpd
S 48 5751 9495 0 75 0 13492 56312 113621 ? 00:00:00 httpd
S 48 12066 9495 0 75 0 13492 56285 114924 ? 00:00:00 httpd
R 48 19904 9495 1 75 0 13500 56273 - ? 00:00:00 httpd
S 48 12075 9495 0 76 0 13508 56303 flock_ ? 00:00:00 httpd
S 48 13587 9495 0 75 0 13512 56309 flock_ ? 00:00:00 httpd
S 48 12076 9495 0 75 0 13516 56280 114501 ? 00:00:00 httpd
S 48 24047 9495 0 75 0 13520 56306 flock_ ? 00:00:00 httpd
S 48 14257 9495 0 76 0 13524 56292 109953 ? 00:00:00 httpd
S 48 18129 9495 1 76 0 13528 56305 flock_ ? 00:00:00 httpd
S 48 19912 9495 0 75 0 13532 56279 109953 ? 00:00:00 httpd
S 48 25656 9495 0 76 0 13536 56331 113030 ? 00:00:00 httpd
S 48 25661 9495 0 75 0 13536 56268 109953 ? 00:00:00 httpd
S 48 25779 9495 1 75 0 13536 56299 flock_ ? 00:00:00 httpd
S 48 30004 9495 0 76 0 13540 56309 flock_ ? 00:00:00 httpd
S 48 22123 9495 0 75 0 13540 56312 flock_ ? 00:00:00 httpd
S 48 10166 9495 0 75 0 13544 56343 flock_ ? 00:00:00 httpd
S 48 16234 9495 0 76 0 13544 56318 109953 ? 00:00:00 httpd
S 48 18127 9495 0 75 0 13544 56333 112641 ? 00:00:00 httpd
S 48 14256 9495 0 75 0 13556 56330 110460 ? 00:00:00 httpd
S 48 11765 9495 0 75 0 13560 56277 flock_ ? 00:00:00 httpd
S 48 16262 9495 1 76 0 13560 56316 flock_ ? 00:00:00 httpd
S 48 18118 9495 1 76 0 13568 56324 111722 ? 00:00:00 httpd
S 48 3967 9495 0 76 0 13584 56324 flock_ ? 00:00:00 httpd
S 48 3136 9495 0 76 0 13588 56328 114567 ? 00:00:01 httpd
S 48 9908 9495 0 75 0 13588 56505 113304 ? 00:00:00 httpd
S 48 22126 9495 0 75 0 13604 56302 111804 ? 00:00:00 httpd
<30 строк скипнуто>
S 48 5757 9495 0 76 0 13780 56341 109953 ? 00:00:00 httpd
S 48 5749 9495 0 76 0 13796 56342 111820 ? 00:00:01 httpd
S 48 25772 9495 1 75 0 13800 56389 109953 ? 00:00:00 httpd
S 48 15412 9495 0 75 0 13836 56416 113499 ? 00:00:01 httpd
S 48 9928 9495 0 75 0 13856 56409 110528 ? 00:00:00 httpd
S 48 10070 9495 0 76 0 13900 56437 110041 ? 00:00:00 httpd
S 48 12072 9495 0 75 0 13908 56417 110663 ? 00:00:00 httpd
S 48 11766 9495 0 76 0 13944 56423 109953 ? 00:00:00 httpd
S 48 3132 9495 0 75 0 13956 56486 114540 ? 00:00:00 httpd
S 48 25680 9495 0 75 0 13972 56416 flock_ ? 00:00:01 httpd
S 48 5788 9495 0 75 0 14008 56459 111183 ? 00:00:00 httpd

Параметры апача:

StartServers 5

MinSpareServers 5

MaxSpareServers 10

ServerLimit 512

MaxClients 512

MaxRequestsPerChild 64

KeepAlive Off

MaxKeepAliveRequests 100

KeepAliveTimeout 15

В общем, как так оптимизиовать httpd чтобы он не выводил ошибок о memory allocation?

Спасибо

ps. Работы по настройке могу оплатить

M
На сайте с 01.12.2009
Offline
235
#1

Очень интересен ps в виде апачи :)

---

я что то, про память не понял, довайте так напишите конкретно скоко памяти и какая частота выделенна, ато я так понял у вас 5 гиг памяти на vps ?

дайте вывод cat /proc/cpuinfo

ещё дайте такое httpd -l вывод

Администратор Linux,Freebsd. построения крупных проектов.
P
На сайте с 22.01.2010
Offline
3
#2

Выделено 5Гб - типа "гарантировано", 10 Гб типа "флекс"

Проц - 10 Ггц выделено.

cat /proc/cpuinfo кажет 16 ядер Xeon-а и причем тут это? В процессор не упирается.

Упирается в kmemsize лимит от beancounter-ов.

ttpd -l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

M
На сайте с 16.09.2009
Offline
278
#3

Proxoma, поставьте перед апачем легкий прокси (типа nginx).

Потом уже можно крутить остальное (если понадобится). Если

понадобится помощь - обращайтесь.

PS: 500 апачей по 10Mb RSS каждый - уже съедят вашу память в пике. Эта

настройка уже очевидным образом бессмысленна.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
M
На сайте с 01.12.2009
Offline
235
#4
Proxoma:
Выделено 5Гб - типа "гарантировано", 10 Гб типа "флекс"
Проц - 10 Ггц выделено.
cat /proc/cpuinfo кажет 16 ядер Xeon-а и причем тут это? В процессор не упирается.

Упирается в kmemsize лимит от beancounter-ов.

ttpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

---

кажет 16 ядер Xeon-а и причем тут это?

Это называться берите сервер.

это понятие на vps "Cannot allocate memory" - значит, что то через какое-то время упирается в лимит , настраиваемый для виртуального контейнера.

а вот по ps у вас не соответствуют данные и настройки apache.

StartServers 5

MinSpareServers 5

MaxSpareServers 10

ServerLimit 512

MaxClients 512

MaxRequestsPerChild 64

Попробуйте сделать так

<IfModule prefork.c>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

ServerLimit 512

MaxClients 512

MaxRequestsPerChild 64

</IfModule>

P
На сайте с 22.01.2010
Offline
3
#5

У меня так оно и есть:

<IfModule prefork.c>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

ServerLimit 512

MaxClients 512

MaxRequestsPerChild 64

</IfModule>

Я так понимаю, что на каждое соединение появляется процесс httpd?

Самое интересное, что вся эта конфигурация работает на выделенном сервере с 2 гб памяти и всего хватает. Сайты те же, настройки те же.

А тут вот решил на VPS переползти.

Количество одновременных подключений к серверу может достигать 500. Страницы-чистый php. Не знаю, поможет ли тут nginx

Proxoma добавил 03.02.2010 в 18:35

madoff

а что вы имеете в виду, что конфиуграция не соответствует выводу ps?

Разве если указано

ServerLimit 512

MaxClients 512

то процессов должно быть сколько?

M
На сайте с 16.09.2009
Offline
278
#6

Proxoma, Вы не одиноки. Тут мало кто понимает, что madoff имеет в виду :D

а nginx (в режиме прозрачного прокси) поможет, поскольку возьмет на себя

обработку медленных клиентов. И не будет нужды висеть в памяти аж до

500 процессам апача.

P
На сайте с 22.01.2010
Offline
3
#7

Мне вот чего еще непонятно:

По top или cat /proc/meminfo видно, что памяти свободной много:

Mem: 10485760k total, 601472k used, 10184288k free, 0k buffers

По top как только доходит до ~620 - начинаются эти вот ошибки с аллокацией памяти.

и тут же видны превышения лимита kmemsize по /proc/user_beancounters

Как-то это между собой коррелирует?

Proxoma добавил 03.02.2010 в 18:47

myhand,

На сервер ломятся юзеры именно в таком количестве.

Как я сказал, на "железном" сервере с 2 (!) Гб памяти те же сайты работают в той же конфигурации.

Тут какие-то VDS-ные заморочки вылезли.

M
На сайте с 01.12.2009
Offline
235
#8
myhand:
Proxoma, Вы не одиноки. Тут мало кто понимает, что madoff имеет в виду :D

а nginx (в режиме прозрачного прокси) поможет, поскольку возьмет на себя
обработку медленных клиентов. И не будет нужды висеть в памяти аж до
500 процессам апача.

Какой же вы админ если вы не понимаете этого ?

"Cannot allocate memory" - значит, что то через какое-то время упирается в лимит , настраиваемый для виртуального контейнера.

Или TC понимают то что вы пишите, поставьте nginx , это админ пишет TC что бы он nginx ставил, не проще уже написать давайте бабло я вам поставлю, или вы пытаетесь сказать что я както не так юзеру ответил ???.

Смешно админ поддерживает юзера который туго понимает в vps :) ото такой админ nginx и все ваши проблемы решены 😂 всем так и пишите дальше nginx спасёт мир 😂

---

ps у вас много простоев в httpd а должно быть активных максимум 20-25 видемо httpd не настроен, ещё может быть что у них сервер vps умирает и это отражается на всех!

M
На сайте с 16.09.2009
Offline
278
#9

Proxoma, почитайте в вики openvz подробнее про этот параметр (kmemsize). Грубо говоря, он

как минимум линейно растет с числом процессов. При определенном "везении" за

счет "грамотных" настроек хостером ограничений памяти для вашего VPS - и Вы

в этот лимит упретесь.

VPS хостинг у вас по ограничениям не похож на бюджетный - возможно хостер

пойдет Вам навстречу и изменит этот параметр.

А легкий прокси поставить - подумайте. Посмотрите по mod_status. Если у вас

куча апачей сидят в состоянии "W" запихивают контент клиенту - не лучше ли будет,

если они быстро отдадут его nginx-у и займутся другими вещами?

madoff:
Какой же вы админ если вы не понимаете этого ?

Я не понимаю того, например, зачем вы посоветовали ТС заключить

директивы для prefork в <IfModule>.

P
На сайте с 22.01.2010
Offline
3
#10

Не особо понятно, почему VPS-ка упирается в kmemsize, при этом вагон якобы свободной памяти...

Так чего делать-то?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий