Найти процесс в кеше или буфере

Я запускаю web и DB на одном сервере с 4 ГБ оперативной памяти. Когда я проверил память с помощью free -m, я вижу, что большая часть памяти находится в кэше.

free -m total used free shared buff/cache available Mem: 3534 1507 973 25 1052 1676 Swap: 8191 0 8191 

Есть ли способ узнать, какой процесс обслуживается из кеша или который получает кеш, потому что каждый раз я должен использовать команду sync для очистки свободной памяти.

В общем, вы не должны этого делать. Свободная память – неиспользуемая память , неиспользуемый ресурс. Ядро знает, что он делает: до тех пор, пока не будет лучшего использования памяти, он будет использовать его для буферов ввода-вывода или кеша диска. Когда для запуска процессов потребуется больше памяти, ядро ​​будет автоматически распределять его.

Если вы не можете измерить дисбаланс между использованием пространства подкачки и памятью, вы не должны мешать параметрам распределения памяти.