服务器拒绝使用交换分区

我们正在运行一个有23个内核的服务器(cpuinfo显示最高进程号为22)和66个内存。 这里的开发团队正在运行一些应用程序,这会占用大量的内存。

我观察到:1.即使内存运行非常低(可用内存= 167 MB),也没有交换使用。 想知道为什么服务器拒绝使用交换。 任何想法呢? 2.系统负载有时会增加到70+以上,我可以看到这些应用程序是I / O密集型的。这可能导致这样的高负载平均值?

这是来自VMstat的输出

 procs -----------内存---------- --- swap-- ----- io -----system-- ----- cpu ------
  rb 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
缓冲区:1498068 kB
caching:48842440 kB
 SwapCached:0 kB
 Active:5350660 kB
不活动:46810284 kB
 HighTotal:0 kB
 HighFree:0 kB
 LowTotal:66000044 kB
 LowFree:11824808 kB
 SwapTotal:131074324 kB
 SwapFree:131074324 kB
脏:2641608 kB
写回:96 kB
 AnonPages:1819092 kB
映射:766660 kB
板:1753100 kB
 PageTables:131908 kB
 NFS_Unstable:0 kB
弹跳: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. 

当你从磁盘读取数据时,它会进入内存。 如果没有其他内容竞争内存,则该文件将留在内存中,直到应用程序尝试使用该空间为止。 每当从磁盘读取文件时,首先检查caching。

你几乎没有使用你的内存来处理应用程序,即使使用caching,你也有很多剩余的内存可以使用。 您的服务器不应该利用内存负载的光线来利用交换空间。