Re: Как ограничить размер Свопа ? [message #6532 is a reply to message #6517] |
Wed, 20 September 2006 05:45 |
vaverin
Messages: 708 Registered: September 2005
|
Senior Member |
|
|
privvmpages -- это вовсе не оперативка. Cогласно документации privvmpages: memory allocation limit. Замечу -- именно allocation, а не потребления, потому что существенную часть запрошенной памяти приложения не используют. Наши измерения показывали что apache не использут 20-30% памяти запрошенной при запуске. В случае multithred application доля неиспользуемой памяти существенно возрастает, иногда они рельнот используют всего лишь 10% запрошенной памяти.
Поэтому в принципе privvmpages можно сопостовлять с объяемом RAM+swap, но чтобы компенсировать неиспользуемую память VE можно отдавать от 1.5 до 4 раз больше privvmpages. Хотя для stability critical application конечно рисковать не стоит, в этом случае лучше не превышать объем RAM+swap.
Да, система сама будет определять что и когда отправлять в swap, а что оставлять в RAM. Однако, поверьте, системе виднее чем вам, она никогда не будет держать RAM свободной, если ее есть чем занять. Обычно на любой работающей ноде почти вся память достаточно быстро забивается разного рода структурами.
Вы хотите чтобы в swap уходили в первую очередь данные относящиеся к VE? Наверное в некоторых случаях это действительно может иметь смысл.
Однако я хочу обратить ваши внимание на следующее обстоятельство: Virtuozzo (да и наверное OpenVz тоже) обычно использутся для хостинга. внутри VE живут клиенты и они очевидно будут недовольны задержками в работе к которым приведет приемущественное сбрасывание их данных в swap. С другой стороны, в VE0 практически никто не живет, она используется только для административных целей. Задач там немного, да и задержка для них не особо критична. Но именно поэтому там нет данных которые стоило бы вытеснить в своп. просто потому что этих данных мало, и заметной пользы ноде это не принесет. Согласитесь, в таком сценарии совершенно неочевидно, стоит ли давать приемущество работы со swap какой либо из сторон.
Кроме того, хочу отметить, в своп вытесняются данные, которые используются _реже_. В свою очередь реже используются данные той VE которой дают _меньше_ _CPU_. Таким образом можно повлиять на работу со swap косвенно, путем назначения адекватных CPUunits. Если вы дадите много CPU ve0 -- она будет чаще работать с данными -- в swap при необходимости будут уходить редкоиспользуемые данные из VE.
|
|
|