LINUX.ORG.RU

Системный кэш мешает работе программ


0

0

На debian сервере с 512Mb памяти крутится несколько программ, и в том числе apache+nginx.

Там же есть скрипт, при запуске которого требуется около 150 метров свободной памяти. Его работа контролируется с помощью таймаутов, и в случае нехватки свободной памяти скрипт просто не в состоянии запуститься - т.к. пару минут происходит ее освобождение от кэша.

Вероятно, кэш загромождают картинки, около 400 штук которых (500кб в среднем на каждую) доступны через веб-сервер. Посетителей у страницы нет, но гугл ее регулярно индексирует и в этом момент размер кэша прилично возрастает.

Правда, там же крутится приложение на django с базой mysql около 30Mb.

Возникает следующая проблема - скрипт, для которого требуется память, удается запустить только, если выполнить очистку системных кэшей # echo 3 > /proc/sys/vm/drop_caches (при этой команде высвобождается около 250 метров)

Подскажите, как ограничить использование памяти под кэши ? (с помощью настроек ядра, apache , или еще как-нибудь)


Ответ на: комментарий от true_admin

>удивись, кэш в своп не попадает
facepalm.sh
конечно кеш не попадает в своп, туда попадают неактивные страницы

nu11 ★★★★★
()
Ответ на: комментарий от true_admin

>Я повторил эксперимент как ты сказал, всё так же.
подробнее. free -m до и после, какой vm.swapiness, что запускал и за сколько запустилось, сколько свопа в системе и что за система вообще

nu11 ★★★★★
()
Ответ на: комментарий от nu11

йопрст, ты щас на какую тему споришь? Ты хочешь сказать что очистка кэша это дорогая операция которая занимает драгоценные секунды у других программ?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

секунды занимает не очистка кеша, а сброс страниц в своп вместо очистки кеша. У меня сейчас это тоже не воспроизводится, возможно действительно в ядре что-то поменяли. Раньше можно было заставить ядро свопить вместо освобождения кеша, при этом ловились хорошие тормоза, если память забивалась кешем.

nu11 ★★★★★
()
Ответ на: комментарий от nu11

ну да, vm.swappiness это. Мы друг друга неправильно поняли.

true_admin ★★★★★
()

> На debian сервере с 512Mb памяти крутится несколько программ, и в том числе apache+nginx.

Там же есть скрипт, при запуске которого требуется около 150 метров свободной памяти.

А как вы посчитали, что скрипту надо __всего__ 150М ? были ещё упомянуты Xvfb и множественные запросы к mysql - всё это добро вместе вполне может тянуть весомо, требуя почти все 512 физической памяти - и тут естественно начинаются свопы и тормоза.

MKuznetsov ★★★★★
()
Ответ на: Какая может быть тут версия? от C

> что кэширование файлов вызвало данный эффект - несомненно

Ересь, ахинея и бред. Проблема 100% в чем-то другом. Разбирайся.

redixin ★★★★
()
Ответ на: комментарий от AptGet

Виртуализация - Xen

cудя по наличию xenbus и xenwatch

C
() автор топика
Ответ на: комментарий от nu11

Спасибо, система стала устойчивее

Создал swap файл на 512Mb, после чего скрипт почти перестал тормозить при запуске.

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

C
() автор топика
Ответ на: комментарий от LamerOk

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

dave ★★★★★
()
Ответ на: комментарий от dave

Тот самый, который в Chrome/Safari

Только через PyQt используется и Xvfb. И видимо, 150Мб - это далеко не пиковое потребление - есть жуткие страницы в интернете (обычно блоги), для рендеринга которых и 200 метров не хватает.

C
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.