Вот заголовок главного вывода моего сервера CentOS 5 в момент очень низкой нагрузки. Я хочу знать, разумно ли он использует свою свободную память для кэширования файлов с диска. Из 2 ГБ ОЗУ, кажется, 1 ГБ свободно, а также 600 КБ кэширования и 40 КБ буферов. 1G бесплатный или нет? Сколько памяти используется памятью в качестве дискового кеша? Если эта свободная память действительно свободна, есть ли способ сказать Linux, что нужно запустить и использовать эту свободную память? Спасибо!!
top - 19:07:54 up 32 days, 15:59, 1 user, load average: 0.45, 1.10, 0.98
Tasks: 148 total, 3 running, 144 sleeping, 1 stopped, 0 zombie
Cpu(s): 2.3%us, 0.3%sy, 0.0%ni, 97.0%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 2064728k total, 1064992k used, 999736k free, 39268k buffers
Swap: 2096472k total, 92k used, 2096380k free, 668296k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30394 mysql 15 0 262m 58m 4816 S 2.0 2.9 1455:23 mysqld
20780 apache 16 0 53644 11m 7532 R 1.0 0.6 0:05.07 httpd
15795 apache 15 0 54520 22m 17m S 0.3 1.1 0:28.03 httpd
17941 apache 15 0 53960 13m 8972 S 0.3 0.7 0:38.01 httpd
19260 apache 20 0 53360 10m 7092 S 0.3 0.5 0:01.72 httpd
20777 apache 15 0 53676 11m 7732 S 0.3 0.6 0:04.84 httpd
20778 apache 19 0 53652 13m 9652 S 0.3 0.7 0:03.48 httpd
20830 root 15 0 2324 1052 796 R 0.3 0.1 0:02.89 top
1 root 15 0 2064 632 548 S 0.0 0.0 0:54.77 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.89 ksoftirqd/0
Да вроде у вас почти 1 гб свободно. Что странно. Обычно это означает, что у вас был процесс, использующий много памяти, который недавно завершился, и у Linux еще не было возможности повторно использовать эту память для кэширования страниц. В качестве альтернативы, с момента загрузки в системе было так мало активности, что снова не было достаточно операций ввода-вывода, чтобы заполнить память кешем страниц.
«Обычно» вы должны увидеть несколько десятков МБ бесплатно.