Техническая база знаний

Заказать консультацию


Материал от эксперта

Загрузка оперативной памяти

Оперативная память

Полная загрузка оперативной памяти в ОС Linux часто вызывает обеспокоенность у владельцев систем.

Оперативная память в ОС Linux, как и во многих других современных ОС, выделяется под буфер и кэш.

  • Буфер — это чаще всего просто «временное хранилище» (в широком смысле) чего угодно (данных, указателей, значений переменных) для чего угодно (процессов, устройств), позволяющее сгладить несоответствие между скоростью проведения операции и скоростью чтения /записи. В буфере большие блоки данных сливаются или разбиваются на части, это необходимо для взаимодействия с запоминающим устройством (жестким диском), которое работает с большими блоками данных, или когда данные передаются в другом порядке чем тот, в котором они формируются. Использование буфера приносит пользу, даже если буферизируемые данные пишутся в буфер и читаются из него однократно.
  • Кэш — это память, используемая между устройством хранения данных (жестким диском) и процессом обработки данных (СУБД или Asterisk). В свою очередь, использование кэша предполагает, что данные будут читаться из кэша чаще, чем записываться туда. Её назначение — устранить обращения к запоминающему устройству (жесткому диску), т.е. сделать операцию чтения более эффективной. При частых операциях с одними и теми же данными, особенно с большими (в том числе и при работе с БД), Linux кэширует эти данные в оперативную память. Даже если программа завершила выполнение и никаких ее дочерних процессов не осталось, кэш память, хранящая фрагменты используемых файлов, высвобождена не будет. Страничный кэш предусматривает ситуации, когда созданный файл в одной программе, завершившей свое выполнение, затем используется в другой программе. Скорость работы жесткого диска на пять порядков медленнее оперативной памяти. И если случается так, что данные ранее уже были скэшированы, то процессу крупно повезло. Именно поэтому, из кэша ничего не удаляется, по крайней мере до тех пор, пока есть свободная оперативная память. Страничный кэш не зависит от какого-то конкретного процесса, наоборот – это такой ресурс, который совместно использует вся система. Вот почему размер страничного кэша постепенно растет, а затем его рост вдруг останавливается. Нет, не потому что система работает некорректно и съедает всю оперативную память. А потому, что так и должно быть. Неиспользуемая оперативная память – это своего рода напрасно растрачиваемый ресурс. Лучше использовать как можно больше оперативной памяти под страничный кэш, чем вообще никак не использовать. Как только занятая закэшированными данными оперативная память понадобится системе, она будет освобождена для более приоритетной задачи.

Системы автодозвона обычно работают с большим объёмом данных в СУБД (списки телефонных номеров), используются всякие объединения, индексы, поиски и пр. Часть этих данных (результаты запросов) кэшируются СУБД, чтобы при повторном запросе в базу (например, поиск включенных заданий обзвона), не делать обращения к жесткому диску - это положительно сказывается на скорости работы системы и загрузке ресурсов.
Максимальное использование оперативной памяти под кэш есть признак оптимальной загрузки имеющихся аппаратных ресурсов процессами в системе.


Очистка кэша

Обычно необходимости в сбросе кэша нет, т.к. при нормальном режиме работы система сначала возьмёт память из кэша, прежде чем перейдёт в swap.

Начиная с ядра версии 2.6.16 появилась возможность очистки кэша.

Для очистки pagecache:

sync; echo 1 > /proc/sys/vm/drop_caches

Для очистки dentries and inodes:

sync; echo 2 > /proc/sys/vm/drop_caches

Для очистки pagecache, dentries and inodes (по сути, это объединение первого и второго варианта):

sync; echo 3 > /proc/sys/vm/drop_caches

Это абсолютно безопасная операция, т.к. будет очищена только та память, которая реально не используется.

Наши клиенты

ЦОВ на базе IP АТС FBX :: Core для группы компаний ERG
Система автоматического информирования должников на базе IP АТС FBX :: Core
Автоматизация колл-центра на базе системы IP АТС FBX :: Core с модулем FBX :: Autodialer
Модернизации телефонной сети «Национальной фруктовой компании»
Реорганизация IP телефонии для федеральной сети аптек Здоров.ру
Телефонная сеть для компании Кухонный двор на базе IP АТС FBX :: Core
Телефонная сеть на базе IP АТС FBX :: Core для АО «Теплоэнергосервис»
Автоматизация отдела продаж и миграция с аналоговой телефонии на VoIP
Организация ЦОВ для онлайн-кинотеатра IVI
Автоматизация работы операторов колл-центра поставщика кофейной продукции, компании КофеКАП
ЦОВ для ОФД Казахстана на базе IP АТС FBX :: Core
Система управляемых телеконференций
Система автодозвона и информирования для администрации района
Система IP АТС на базе программного продукта IP АТС FBX :: Core
Объединение территориально распределенных офисов и Call-центров
Система VOIP-телефонии на базе программного продукта IP АТС FBX :: Core
Миграция с аналоговой телефонии на VoIP для стоматологического центра
Автоматизация отдела продаж, путем интеграции VoIP телефонии с CRM
Автоматизации работы операторов на базе FBX :: Call-center
Организована VoIP телефония для трех филиалов медицинского центра
Автоматизация колл-центра на базе FBX :: Call-center
IP АТС FBX :: Core для филиала компании Баусервис

раскажите нам о своей задаче