我有一个带有64G DRAM的24核服务器,它运行的是Ubuntu Server 15.10.我在交换和物理内存使用方面遇到了一些奇怪的行为.在我将Ubuntu升级到15.10之前,我从未遇到过这个问题.
你可以在’顶部’看到我的问题:
- top - 18:52:09 up 1 day,2:25,3 users,load average: 1.64,1.30,1.18
- Tasks: 525 total,2 running,523 sleeping,0 stopped,0 zombie
- %cpu(s): 0.3 us,1.3 sy,0.0 ni,97.0 id,1.4 wa,0.0 hi,0.0 si,0.0 st
- KiB Mem: 65937528 total,37526160 used,28411368 free,14396 buffers
- KiB Swap: 67071996 total,67071724 used,272 free. 104304 cached Mem
- PID USER PR NI VIRT RES SHR S %cpu %MEM TIME+ COMMAND
- 363 root 20 0 0 0 0 R 100.0 0.0 324:02.98 kswapd0
- 6725 theosib 20 0 99.398g 0.034t 8920 D 12.0 55.1 59:08.71 common_shell_ex
有一个用户登录(我),我有一个使用大量虚拟内存的进程.但是,某些东西限制在大约一半的物理内存,而交换分区基本上是满的.我已经看过这些进程(Synopsys Design Compiler)运行,并且在交换填充之前它们不会突破50%的标记.另一个奇怪的事情是kswapd0使用非常高(通常是100%)的cpu. AFAIK,kswapd0应该受I / O限制,因此不会占用大量cpu时间.
我看看是否有任何限制,但ulimit说不然:
- $ulimit -a
- core file size (blocks,-c) 0
- data seg size (kbytes,-d) unlimited
- scheduling priority (-e) 0
- file size (blocks,-f) unlimited
- pending signals (-i) 257447
- max locked memory (kbytes,-l) 64
- max memory size (kbytes,-m) unlimited
- open files (-n) 1024
- pipe size (512 bytes,-p) 8
- POSIX message queues (bytes,-q) 819200
- real-time priority (-r) 0
- stack size (kbytes,-s) 8192
- cpu time (seconds,-t) unlimited
- max user processes (-u) 257447
- virtual memory (kbytes,-v) unlimited
- file locks (-x) unlimited
我也试过将swappiness设置为10,但这没有帮助.
任何人都可以帮我弄清楚为什么这个系统行为不端?