OpenVZ Forum


Home » International » Russian » Использование памяти.
icon5.gif  Использование памяти. [message #23955] Thu, 29 November 2007 09:19 Go to next message
xido is currently offline  xido
Messages: 8
Registered: November 2007
Junior Member

Не совсем понимаю как openVZ работает с памятью Twisted Evil . Поясните пожалуйста.

Следующая ситуация. Есть VPS, для нее выделено 384 мегабайта гарантированной памяти, privvmpages 768 мегабайт.

На ней запущен Apache2 с MPM worker. Размер виртуальной памяти (в top например) одного чайлда апача 277 мегабайт, RES=25 мегабайт. У демона 2 чайлда, и вместе они занимают около 600(!!!) мегабайт оперативной памяти.

[root@node conf]# free
             total       used       free     shared    buffers     cached
Mem:        786432     696640      89792          0          0          0
-/+ buffers/cache:     696640      89792
Swap:            0          0          0


И это есть очень странно. Потому что на "обычном" ядре тот же апач занимает около 250 мегабайт оперативной памяти, причем там намного больше чайлдов (5-6).

[root@node conf]# cat /proc/user_beancounters
Version: 2.5
       uid  resource           held    maxheld    barrier      limit    failcnt
      160:  kmemsize        4804020   17375686 2147483646 2147483646          0
            lockedpages           0          0     999999     999999          0
            privvmpages      174133     198128     196608     196608     549961
            shmpages           1333      17025     131072     131072          0
            dummy                 0          0          0          0          0
            numproc              95        229     999999     999999          0
            physpages         21437      87007          0 2147483647          0
            vmguarpages           0          0     131072 2147483647          0
            oomguarpages      21438      87007     131072 2147483647          0
            numtcpsock           26        231    7999992    7999992          0
            numflock              6         12     999999     999999          0
            numpty                1          3     500000     500000          0
            numsiginfo            0         84     999999     999999          0
            tcpsndbuf        272792    2043704  107374592  289400832          0
            tcprcvbuf        435680    3663224  107374592  289400832          0
            othersockbuf      24492    2010092  107374592  289400832          0
            dgramrcvbuf           0      37572  107374592  289400832          0
            numothersock         22        232    7999992    7999992          0
            dcachesize            0          0 2147483646 2147483646          0
            numfile            3561       6679   23999976   23999976          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            numiptent            10         10     999999     999999          0


Можете кинуть в меня ссылкой на то как в openVZ происходит управление памятью, или лучше поясните здесь Very Happy . И как настроить openVZ чтобы была возможность запустить httpd на меньшем количестве памяти ?

[Updated on: Thu, 29 November 2007 09:22]

Report message to a moderator

Re: Использование памяти. [message #23965 is a reply to message #23955] Thu, 29 November 2007 12:09 Go to previous messageGo to next message
vaverin is currently offline  vaverin
Messages: 708
Registered: September 2005
Senior Member
numproc 95 229 999999 999999 0

это означает что у Вас внутри VE работает не только апач с 2 чилдами, но и еще 92 других процесса.
Re: Использование памяти. [message #23966 is a reply to message #23955] Thu, 29 November 2007 12:15 Go to previous messageGo to next message
vaverin is currently offline  vaverin
Messages: 708
Registered: September 2005
Senior Member
Также рекомендую посмотреть к нам на wiki:
http://wiki.openvz.org/UBC_systemwide_configuration
Re: Использование памяти. [message #23967 is a reply to message #23965] Thu, 29 November 2007 12:24 Go to previous messageGo to next message
xido is currently offline  xido
Messages: 8
Registered: November 2007
Junior Member

Эти 92 процесса поглощают около 100 мегабайт. =)
Re: Использование памяти. [message #23983 is a reply to message #23967] Thu, 29 November 2007 16:46 Go to previous messageGo to next message
vaverin is currently offline  vaverin
Messages: 708
Registered: September 2005
Senior Member
Вы хотите сказать, что после остновки апача free показывает used в районе 100 Мб?

free показывает privvmpages -- то есть аллокированную память.
http://wiki.openvz.org/Privvmpages#privvmpages

В то же самое время бОльшая часть этой памяти не используется, о чем свидетельствуют
physpages 21437
и
oomguarpages 21438
Информацию об этих параметрах Вы также можете найти на wiki

То есть реально VE использует ~85Mb вирутальной памяти. Все 95 процессов.

Теоретически VE может попробовать использовать аллокированную память, но на практике этого обычно не происходит.
Failcounters на privvmpages показывают что процессы внутри VE запрашивали еще больше памяти, но из-за превышения установленых лимитов эти запросы не были удовлетворены.

Однако поскольку процессы в вашей VE реально используют только малую часть запрошенной памяти Вы можете без особого риска увеличить privvmpages limits для этой VE.

С уважением,
Василий Аверин
Re: Использование памяти. [message #24004 is a reply to message #23983] Thu, 29 November 2007 20:48 Go to previous messageGo to next message
xido is currently offline  xido
Messages: 8
Registered: November 2007
Junior Member

Наверное я не так выразился.
После остановки апача free показывает что освободилось 600 мегабайт. При запущенном апаче занято ~750 мегабайт. После остановки занято ~120-150 мегабайт (это как раз те 90 процессов, mysql, spamd, exim, etc). user_beancounters приводилось на момент остановленного апача. В этом все и дело. 8((
Re: Использование памяти. [message #24016 is a reply to message #24004] Fri, 30 November 2007 05:28 Go to previous messageGo to next message
vaverin is currently offline  vaverin
Messages: 708
Registered: September 2005
Senior Member
Уважаемый Denis,

Я так понимаю, что и free Вы привели на момент остановленного апача?

В таком случае объясните, что Вы имеете в виду:
"После остановки занято ~120-150 мегабайт".
"Эти 92 процесса поглощают около 100 мегабайт."
Откуда Вы берете эти цифры?

И пожалуйста формулируйте Ваши вопросы поконкретнее.
Вы хотите знать что означают параметры в /proc/user_beancounters? Пожалуйста читайте wiki.
Вы хотите знать как openVZ kernel считает эти параметры? Пожалуйста смотрите сырцы ядра.
Вы хотите знать как вам запустить апач? смотрите каких ресурсов ему не хватает (failcounters) и по возможности повышайте лимиты.

С уважением,
Василий Аверин
Re: Использование памяти. [message #24024 is a reply to message #24016] Fri, 30 November 2007 10:45 Go to previous messageGo to next message
xido is currently offline  xido
Messages: 8
Registered: November 2007
Junior Member

Цифры беру из вывода free. Т.е перед запуском апача занято 100-120 мегабайт (как раз те 92 процесса). После запуска занято 750. По failcounters видно что ему не хватает privvmpages.

На впс мне нужно выделить 384 мегабайта гарантированной памяти и privvmpages на 512 мегабайт. больше нельзя. Как считается память я вроде бы Razz понимаю. Хотя может мое понимание далеко от правды.

Вопрос в том, что на обычном ядре, без openvz апач занимает около 200 мегабайт, своп не используется. Эти цифры брал точно так же из free.

Спасибо за ссылку на wiki, но она не помогла понять эту странность.. 8(
Re: Использование памяти. [message #24029 is a reply to message #24024] Fri, 30 November 2007 12:06 Go to previous message
vaverin is currently offline  vaverin
Messages: 708
Registered: September 2005
Senior Member
xido wrote on Fri, 30 November 2007 13:45

Цифры беру из вывода free. Т.е перед запуском апача занято 100-120 мегабайт (как раз те 92 процесса). После запуска занято 750. По failcounters видно что ему не хватает privvmpages.


С цифрами у нас какие-то глобальные разночтения Smile Я вот например вижу что 95 процессов заюзали 174133 pages ~= 700 Mb privvmpages -- что во free, что в user_beancounters.
xido wrote on Fri, 30 November 2007 13:45

На впс мне нужно выделить 384 мегабайта гарантированной памяти и privvmpages на 512 мегабайт. больше нельзя.

Smile ...но тем не менее эти запреты не помешали Вам проставить совсем другие лимиты. (guarpages 512 Мб и privvmpages 768 Mb)
xido wrote on Fri, 30 November 2007 13:45

Вопрос в том, что на обычном ядре, без openvz апач занимает около 200 мегабайт, своп не используется. Эти цифры брал точно так же из free.

Корректно ответить на вопрос сколько памяти требуется апачу достаточно сложно.
Вы полагаете что если free стал показывать на 200 Mb меньше -- то эту память апач поел? Это некорректно. Помимо апача память могли поесть и другие процессы, к тому же что-то ядро могло заюзать под дисковый кэш или какие-нить другие внутренние структуры. С другой стороны апач наверняка заюзал уже загруженные библиотеки.

Ну да ладно, все это к делу по-моему не относится.
Вы хотите чтобы у Вас внутри VE нормально работал апач? Факт налицо -- VE упирается в privvmpages limit. Увеличивайте privvmpages, это относительно безопасно в Вашем случае, реальное потребление памяти у Вас достаточно небольшое. Или убирайте из VE остальные процессы. Никакими настройками ядра мы не в состоянии повлиять на логику работы userspace application.

С уважением,
Василий Аверин
Previous Topic: Монолитное ядро и OpenVZ
Next Topic: Вопросы по Iptables
Goto Forum:
  


Current Time: Tue Nov 05 12:33:47 GMT 2024

Total time taken to generate the page: 0.03508 seconds