有32G内存的服务器却没有swap空间

最近新购置云服务器一枚,运行几个java软件的时候发生了非常诡异的错误,程序总是被无缘无故的kill掉,但是本身并没有消耗多少内存或者cpu,起初我不停地测试该程序,盯着top命令结果看了半小时发现了root命令启动了 kswapd0进程 才导致该java程序被终止,所以我就沿着这个思路去搜解决方案。

虽然路是错的,但是搜索学到了几个新的知识:

死磕内存篇 --- JAVA进程和linux内存间的大小关系

死磕内存篇2 --JAVA进程是怎么突然挂掉的

隐隐约约好像明白了问题所在,又不得其法,只好求助于云服务器的工程师。但是问题很难描述清楚,我又重新调试程序,终于拿到了log日志,如下:

所以要根据教程,在Ubuntu系统里面增加swap空间;https://help.ubuntu.com/community/SwapFaq

但是我本身是非常奇怪的,为什么默认不给swap区域了呢?查了下说明书

Linux服务器默认不提供SWAP盘说明

也就是说其实swap空间是可以省略的,因为内存已经足够大了,但是我运行的软件比较老旧,它默认需要这些东西,所以就尴尬了。

那到底什么才是落后呢?是开发语言吗?是编程规则吗?还是内存呢?当时的程序员怎么会想到未来的内存如此便宜,连swap都可以省略了呢?

不管怎么样,自己的脑子不能落后!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180102G0BMTV00?refer=cp_1026

扫码关注云+社区