Введение
Много раз системы Linux могут испытывать проблемы с нехваткой памяти после некоторого времени работы. Причина в том, что Linux использует много памяти для дискового кеша, так как ОЗУ тратится впустую, если не используется. Кэш используется для хранения данных, которые часто используются операционной системой. Чтение данных из кэша происходит намного быстрее, чем чтение данных с жесткого диска. Операционная система может получать данные из кэша в памяти. Но если данные не были найдены в кеше, они считываются с жесткого диска. Так что не проблема очистить кэш-память.
В этой статье объясняется, как очистить кеш памяти на сервере Linux.
Если вы хотите очистить кеш на удаленном сервере, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Очистить кэш буфера памяти
Есть три варианта очистки кеша памяти Linux. Используйте один из следующих в соответствии с вашими потребностями.
- Чтобы очистить память страниц, dentries и inode:
sync; echo 3 > /proc/sys/vm/drop_caches
Если вы используете не пользователя root, а пользователя с привилегиями sudo
:
sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'
- Чтобы очистить память dentries и inode:
sync; echo 2 > /proc/sys/vm/drop_caches
Если вы используете не пользователя root, а пользователя с привилегиями sudo
:
sudo sh -c 'echo 2 >/proc/sys/vm/drop_caches'
- Чтобы очистить только память кэша страниц:
sync; echo 1 > /proc/sys/vm/drop_caches
Если вы используете не пользователя root, а пользователя с привилегиями sudo
:
sudo sh -c 'echo 1 >/proc/sys/vm/drop_caches'
Запланируйте Cron для регулярной очистки кеша
Рекомендуется запланировать cron для автоматической очистки кэша через равные промежутки времени с помощью crontab.
Используйте команду crontab -e
для редактирования cron в вашей системе:
crontab -e
Добавьте следующую строку:
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches
Приведенный выше cron будет запускаться каждый час и очищать кеш памяти в системе. Вы можете настроить cron для запуска в любое время с заданными временными интервалами, для получения дополнительной информации прочитайте этот учебник.
Найти кеши, используемые в Linux
Используйте free
команду, чтобы узнать, как кэш-память используется системой Linux:
free -mh
Вы должны увидеть выходное сообщение, подобное следующему:
total used free shared buff/cache available
Mem: 1.9Gi 524Mi 146Mi 73Mi 1.2Gi 1.1Gi
Swap: 0B 0B 0B
Параметр -mh
удобен для более удобного чтения результатов вывода. С этой опцией легко различать мегабайты и гигабайты.
Вывод
В этом руководстве мы увидели, как очистить кэш памяти и буфер кэша в Linux.