На серверах RedHat 5 мы видим, что в верхней части свопа отчетов 0 тыс. Бесплатно. vmstat показывает такой же объем подкачки, но без подкачки. Мы убиваем наше единственное приложение, а top по-прежнему сообщает о 100% использованного свопа. Если мы перезагружаемся, своп переходит на 0k used. Есть комментарии: я неправильно интерпретирую top? Неужели в разделе подкачки что-то есть? Не могли бы вы указать мне на документацию, которая могла бы решить эту проблему? Можем ли мы исправить это, если неверно?
Обновление: Swappiness имеет значение по умолчанию 60. Чтобы прояснить вышесказанное, после завершения работы нашего приложения у нас (т.е. процессов, не принадлежащих ОС) нет запущенных процессов, кроме моей оболочки и самого верхнего уровня, но мы продолжаем показывать 0k free swap. Я считаю, что top сообщает неверную информацию, а не то, что у нас нет свободного места для подкачки.
Спасибо.
Также проверьте свою подкачку. Кто-то мог поставить его высоко.
cat / proc / sys / vm / swappiness
Тот факт, что вы убиваете свой самый большой процесс, использующий память, не означает, что ядро немедленно начнет подкачку страниц с диска. Если эти страницы не используются активно, они останутся там до тех пор, пока на них снова не обратится процесс, у которого эти части памяти выгружены. Свопинг влияет на то, насколько агрессивно ядро перемещает объекты в своп и обратно.
https://help.ubuntu.com/community/SwapFaq#What_is_swappiness_and_how_do_I_change_it.3F есть хорошее обсуждение того, что на самом деле делает подкачка и как ее изменение может повлиять на вашу систему.
Как сказал Чарльз, по какой-то причине он может быть установлен слишком высоко.
Top обычно не сообщает статистику памяти в процентах, поэтому я буду работать с предположением, что вы сами рассчитали процент освобождения памяти. Находясь в верхней части экрана, нажмите «G3», чтобы отобразить сводку памяти, используемой каждым процессом. Какой процесс занимает всю память, это ваше приложение или что-то другое, что использует ваше приложение? Если вы можете попробовать убить приложение, занимающее память, вы увидите, что через некоторое время ваша свободная память восстановится. После того, как система начала менять местами, может потребоваться время для восстановления. Кроме того, убедитесь, что вы действительно выделили для вашей системы достаточно физической памяти. Если выделенная память меньше 512 МБ, рассмотрите возможность использования 512 МБ в качестве базового минимума, хотя это применимо только в том случае, если ваша система является виртуализированной гостевой системой.