Память Linux отображает половину используемой памяти, но никакие процессы, похоже, не используют ее
Я выполняю сценарий Java на сервере Fedora Core Release 6 (Linux 2.6.19-1.2911.6.5.fc6xen x86_64) и обеспокоен нехваткой памяти. Всего в коробке 2 ГБ памяти. Запуск "free -tm" отображает следующее:
бесплатно -тм общее количество использованных свободных общих буферов в кеше Памятка: 2048 956 1091 0 115 611 -/+ буферы / кэш: 229 1818 Обмен: 543 0 543 Всего: 2591 956 1635
Кажется, что в настоящее время используется около половины памяти. Когда я запускаю команды "ps aux" и "top", я не могу найти процесс или комбинацию процессов, которые используют память. Вот результаты "сверху":
5473 root 15 0 63236 19m 2036 S 0 0,9 0: 00,33 getAp_StrangeNe 1395 root 18 0 214m 9080 5276 S 0 0,4 0: 00,18 httpd 21088 apache 15 0 217m 7160 2944 S 0 0,3 0: 00,14 httpd 21081 apache 15 0 217m 7128 2952 S 0 0,3 0: 00,01 httpd 21085 apache 15 0 217m 7040 2916 S 0 0,3 0: 00,01 httpd 21087 apache 15 0 217m 7040 2916 S 0 0,3 0: 00,00 httpd 21082 apache 15 0 217m 6492 2524 S 0 0,3 0: 00,00 httpd 21084 apache 15 0 217m 6472 2512 S 0 0,3 0: 00,00 httpd 26700 корень 18 0 144m 6320 3952 S 0 0,3 0: 03,89 php 21086 apache 15 0 216m 5652 1800 S 0 0,3 0: 00,00 httpd 21083 apache 18 0 216m 5648 1800 S 0 0,3 0: 00.00 httpd 4380 корень 15 0 73916 2936 2292 R 0 0,1 0: 00,00 sshd 4042 корень 15 0 73916 2928 2292 S 0 0,1 0: 00,01 sshd 5582 постфикс 16 0 47572 2508 1984 S 0 0,1 0: 00,00 местный 5579 постфикс 16 0 49700 2324 1804 S 0 0,1 0: 00,00 очистка 1495 постфикс 15 0 49628 2288 1768 S 0 0,1 0: 01,73 qmgr 4601 постфикс 15 0 49568 2200 1700 S 0 0,1 0: 00,00 пикап 1492 корень 15 0 47412 2104 1616 S 0 0,1 0: 03.48 master 10654 root 15 0 74272 1684 596 S 0 0,1 0: 00,08 экран 10655 корень 15 0 65308 1676 1212 S 0 0,1 0: 00,05 bash 4044 корень 15 0 65184 1596 1172 S 0 0,1 0: 00,00 bash 4382 корень 15 0 65184 1596 1168 S 0 0,1 0:00.01 bash 5460 корень 18 0 100 м 1588 836 S 0 0,1 0: 00,00 Кронд 1384 NTP 15 0 19760 1296 1024 S 0 0,1 0: 00,28 NTD 1405 корень 19 0 73916 1204 552 S 0 0,1 1: 50,10 Кронд 5584 корень 16 0 16940 1196 892 S 0 0,1 0: 00,05 top 1350 корень 25 0 26828 1188 904 S 0 0,1 0: 00,95 automount 5978 корень 15 0 16804 1164 892 R 0 0,1 0: 00,00 top 28831 корень 15 0 44284 1072 628 S 0 0,1 0: 00.10 sshd 1497 42949672 15 0 35348 1068 720 S 0 0,1 0: 01,51 nrpe 5472 корень 19 0 8644 940 800 S 0 0,0 0: 00,00 sh 26557 корень 15 0 31096 884 520 S 0 0,0 0: 01,71 ssh-agent 1149 корень 18 0 10104 788 648 S 0 0,0 0: 00,00 rpc.statd 1181 корень 18 0 42000 744 328 S 0 0,0 0: 00,06 rpc.idmapd 325 корень 15 -4 12560 684 364 S 0 0,0 0: 00,01 udevd 1 корень 15 0 10308 680 568 S 0 0,0 0: 00,46 init 1129 rpc 15 0 8004 608 452 S 0 0,0 0: 20,77 portmap 1103 root 15 0 5864 604 484 S 0 0,0 0: 11,41 syslogd 1499 корень 15 0 3760 512 440 S 0 0,0 0: 00,00 agetty 1424 корень 18 0 18668 464 308 S 0 0,0 0: 00,00 атд 1106 корень 15 0 3760 440 360 S 0 0,0 0: 00,00 klogd 1199 dbus 25 0 25452 432 216 S 0 0.0 0:00.00 dbus-daemon 1117 root 18 0 6436 328 240 S 0 0.0 0:00.66 irqbalance 2 root RT 0 0 0 0 S 0 0.0 0:00.61 миграция /0 3 root 34 19 0 0 0 S 0 0,0 0: 00,20 ksoftirqd/0 4 корень RT 0 0 0 0 S 0 0,0 0: 00,00 сторожевой таймер /0 5 корень 10 -5 0 0 0 S 0 0,0 0: 00,70 событий /0 6 корень 10 -5 0 0 0 S 0 0.0 0:00.00 khelper 7 root 10 -5 0 0 0 S 0 0.0 0:00.00 kthread 9 root 10 -5 0 0 0 S 0 0.0 0:00.00 xenwatch 10 root 10 -5 0 0 0 S 0 0.0 0:00.00 xenbus 15 root RT -5 0 0 0 S 0 0.0 0:00.66 миграция /1 16 root 34 19 0 0 0 S 0 0.0 0:00.26 ksoftirqd/1 17 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/1 18 root 10 -5 0 0 0 S 0 0.0 0:00.98 events/1 58 root 10 -5 0 0 0 S 0 0.0 0:00.00 kblockd/0 59 root 10 -5 0 0 0 S 0 0.0 0:00.00 kblockd/1 60 root 20 -5 0 0 0 S 0 0.0 0:00.00 cqueue/0 61 root 10 -5 0 0 0 S 0 0.0 0:00,00 cqueue/1 63 root 20 -5 0 0 0 S 0 0.0 0:00.00 ksuspend_usbd 66 root 20 -5 0 0 0 S 0 0.0 0:00.00 khubd 68 root 10 -5 0 0 0 S 0 0.0 0:00.00 kseriod 99 root 10 -5 0 0 0 S 0 0.0 0:00.70 kswapd0 100 root 20 -5 0 0 0 S 0 0.0 0:00.00 aio/0 101 root 20 -5 0 0 0 S 0 0.0 0:00.00 aio/1 234 root 11 -5 0 0 0 S 0 0.0 0:00.00 kpsmoused 262 root 18 -5 0 0 0 S 0 0.0 0:00.00 kmirrord 269 root 20 -5 0 0 0 S 0 0.0 0:00.00 ksnapd 272 root 10 -5 0 0 0 S 0 0.0 0:25.29 kjournald 296 корень 11 -5 0 0 0 S 0 0.0 0:00.00 kauditd 700 корень 14 -5 0 0 0 S 0 0.0 0:00.00 kmpathd/0 701 корень 14 -5 0 0 0 S 0 0,0 0: 00,00 kmpathd/1 725 корень 12 -5 0 0 0 S 0 0,0 0: 00,00 kjournald 1230 корень 10 -5 0 0 0 S 0 0,0 0: 02,87 rpciod/0 1231 корень 10 -5 0 0 0 S 0 0,0 0: 00,00 rpciod/1 1232 корень 19 0 0 0 0 S 0 0,0 0: 00,00 lockd 2405 корень 15 0 0 0 0 S 0 0,0 0: 00,31 pdflush 28522 корень 15 0 0 0 0 S 0 0,0 0: 00,00 pdflush
Я не знаю ничего об управлении памятью в любой операционной системе, поэтому не уверен, что команды, которые я использую, даже выполняют ту информацию, которая мне нужна. Любые предложения относительно того, что может происходить? Я неправильно истолковываю то, что мне преподносят?
3 ответа
Пока я читаю, ваша машина использует 229 МБ для процессов, а затем пытается повысить производительность, кэшируя 611 МБ диска в памяти. Здесь нет ничего странного; Если у него есть свободная память, почему бы не использовать его?
Кстати, вы должны ожидать, что почти вся память будет "использоваться" на любой машине, которая была запущена некоторое время.
Посмотрите на строку +/- buffers/cache.
Использование памяти в строке Mem: включает временное хранилище, используемое операционной системой для кэширования доступа к файлам.
Этот сайт может быть полезен:
Кроме того, как часть этого сайта, есть довольно подробное объяснение того, что происходит с использованием памяти в Linux: