Я установил размер элемента на 128 МБ и максимальную память на 1024 МБ в моей конфигурации memcached. Но когда я запускаю эту команду:
ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5
я получил
71.7 0.0 3072592 4537 /usr/bin/memcached -vv -m 1024 -p 11211 -u memcache -l 0.0.0.0 -I 128M
Это означает, что memcached занимает 3 ГБ памяти. Теперь я понимаю, что когда мы устанавливаем размер элемента больше 1 МБ, потребление памяти memcached увеличивается. Но 3 ГБ, когда вы установили Максимальный объем памяти на 1 ГБ, кажется довольно много.
Всегда так или я что-то не так делаю? Есть ли способ уменьшить это потребление памяти?
Примечание: хотя ключи, которые я в настоящее время храню в memcached, или чуть больше 1 МБ, но размер этих ключей постоянно увеличивается, поэтому для безопасности в будущем я установил размер элемента на максимально возможный!
vsize
делает не означают, сколько памяти занимает процесс. Это число дается rss
.
Размер резидента, или rss
, указывает, сколько памяти фактически использует процесс. Хотя общий размер ВМ, здесь vsize
, указывает сколько всего адресного пространства используется. Программа теоретически может в конечном итоге использовать такой объем оперативной памяти, но большая часть адресного пространства используется такими вещами, как выделенная, но не используемая память, части библиотек, которые не были загружены с диска, потому что они не нужны, и т. Д.
На практике вы можете игнорировать vsize
если только вы не используете 32-разрядную систему, в которой максимально возможное адресное пространство для любого процесса составляет 4 ГБ (даже если процесс использует гораздо меньший объем ОЗУ).