Насколько я понимаю, вывод free заключается в том, что значения буфера / кеша являются истинным отражением доступной памяти.
Я назначил 512 МБ кешу кода операции PHP APC, и хотя он использует все это, вывод free остается прежним.
Я знаю, что проблема заключается в моем понимании (или отсутствии такового) управления памятью. Может кто-нибудь дать мне некоторое представление об этом?
ОБНОВИТЬ:
Мое понимание памяти пришло из изучения сборки, которую я проделал. Я не знаю (по крайней мере, мне кажется), как ядро Linux управляет памятью.
После публикации вопроса я читал больше, и я понимаю, что на самом простом уровне они соответствуют их названиям: кеш - это файлы ядра, зеркалирующие файлы в ОЗУ для более быстрого доступа, а буферы - это временные биты информации, используемые отдельными лицами. процессы.
APC работает (512 МБ полностью загружены):
total used free shared buffers cached
Mem: 1498 1452 46 0 36 796
-/+ buffers/cache: 619 879
Сразу после перезапуска PHP FPM с отключенным APC:
total used free shared buffers cached
Mem: 1498 776 721 0 36 285
-/+ buffers/cache: 454 1043
Игнорирование пространства подкачки, поскольку оно осталось неизменным:
Первая строка имеет для меня смысл, память освобождается как от APC (512M), так и от рабочих PHP (721-46-512 = 163M). Память, выделенная для кеша, больше не имеет APC и уменьшается на 796-285 = ~ 512 МБ (или это просто совпадение?).
Меня смущает вторая строчка. Являются ли эти числа только тем, сколько ядро зарезервировало для буферов, а остальное выделено для кэширования, даже если фактически не используется в настоящее время? Это имело бы смысл, потому что оно падает на ту же величину, которую я рассчитал, как используемую PHP, отражая работников PHP.
Если я прав, то возникает другой вопрос. Что отражают «буферы» в первой строке?
total used free shared buffers cached
Mem: 1498 776 721 0 36 285
-/+ buffers/cache: 454 1043
Вторая строка, 454 = используется (776) - (буферы (36) + кешируются (285))
1043 = бесплатно (721) + (буферы (36) + кэшированные (285))
Значения будут приблизительными.
Что такое буфер?
https://stackoverflow.com/questions/6345020/linux-memory-buffer-vs-cache