我购买的一个ECS服务器,内存1G,装的Ubuntu系统。在几乎没有任何程序的情况下,启动一个内存占用不到400M的程序。启动过程主要是读入三个大小相近结构相同的文件。前两个文件读入很顺畅,但是在在读第三个文件时,程序近乎卡住,top命令显示该程序CPU只占用了6%(正常情况下应该是近100%),内存占不到20%。其它进程几乎不占资源。系统内存还有400M为free,但整个程序明显是在等待阿里云缓慢的读写操作完成。似乎程序在被迫写入Swap缓存。直到近10分钟后第三个文件读入完成,程序才继续100%cpu运行。系统swappiness值为0,所以正常情况下应该内存没有满不会写入swap才对。所以还有40%的内存的时候程序怎么会卡在读写上?阿里云的内存是真实的吗?
- jesuszhu_
用没用swap free看一下就知道。你要先确定它真的在写swap才可以继续往内存这个方向查
- dongshan8
题主您好,
我不是很了解,但或许您还需要考虑一下磁盘的 IO 读写性能,这可能也会成为瓶颈。
你的文件有多大?