Мы запускаем сервер с 23 ядрами (cpuinfo показывает 22 как наивысший номер процесса) и 66 гигабайт ОЗУ. Команда разработчиков запускает несколько приложений, которые занимают много памяти.
Я заметил, что: 1. Даже когда память работает очень мало (свободная память = 167 МБ), подкачка не используется. Интересно, почему сервер отказывается использовать своп. Есть идеи по этому поводу? 2. Нагрузка на систему иногда увеличивается до цифр, например, 70+, я вижу, что эти приложения интенсивно вводят-вывод ... может ли это привести к таким высоким средним нагрузкам?
Вот вывод VMstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 28932 1049 31757 0 0 6 145 6 33 1 0 98 0 0 .. .. 12 2 0 167 1876 57749 0 0 932 49604 2306 96856 26 8 58 7 0
Вывод из meminfo
MemTotal: 66000044 kB MemFree: 11824808 kB Buffers: 1498068 kB Cached: 48842440 kB SwapCached: 0 kB Active: 5350660 kB Inactive: 46810284 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 66000044 kB LowFree: 11824808 kB SwapTotal: 131074324 kB SwapFree: 131074324 kB Dirty: 2641608 kB Writeback: 96 kB AnonPages: 1819092 kB Mapped: 766660 kB Slab: 1753100 kB PageTables: 131908 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 164074344 kB Committed_AS: 9460100 kB VmallocTotal: 34359738367 kB VmallocUsed: 336508 kB VmallocChunk: 34359401823 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 Hugepagesize: 2048 kB
Вы читаете это неправильно и почти не используете свою память.
MemTotal: 66000044 kB = 63GB available to the system
MemFree: 11824808 kB = 11GB with nothing at all used.
Buffers: 1498068 kB = 1.4GB
Cached: 48842440 kB = 46GB of data from the drive that is kept in otherwise unoccupied memory
SwapCached: 0 kB
Active: 5350660 kB = 5.1GB of memory that is actually used by applications.
Когда вы читаете данные с диска, они попадают в память. Если ничто другое не конкурирует за память, этот файл остается в памяти до тех пор, пока приложение не попытается использовать пространство. При чтении файла с диска в первую очередь проверяется кеш.
Вы почти не используете свою память для приложений, и даже с кешем у вас остается много памяти для работы. Ваш сервер не должен использовать пространство подкачки из-за нагрузки на память.