我用C++编写了一个小型geoip查找linux守护进程,我得到两个不同的结果,我想知道为什么。为什么同一台服务器的两个版本的行为不同?
这是源代码:https://github.com/homer6/geoipd 我检查了valgrind的内存泄漏,并没有任何。
我有两台Web服务器,它们都在Amazon EC2上运行相同的Ubuntu映像,并且都在负载均衡器后面,确保它们每个都获得大致相同的流量。我在两台服务器上都安装了守护进程,现在我已经让它们在生产环境中运行了几天。
一切都按预期工作,但“ps aux”的输出在两个实例中略有不同。
服务器1:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
1004 28889 0.0 6.7 640288 517692 ? Ss Nov09 0:03
服务器2:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
1004 16587 0.0 6.7 574752 517688 ? Ss Nov09 0:02
我的问题是两个分开:
- 为什么会出现虚拟内存使用这么大的差别?
- 为什么常驻记忆体使用有差异?
在此先感谢...
更新: 记得检查VM大小当我第一次启动的进程。他们都在574752(或略低于575 MB),他们都有相同的价值。
你的'ulimit'或'/ etc/security/limits.conf'在两个系统之间是不同的吗? – chown
在Ubuntu上,没有这样的目录。由于它们是相同图像的克隆,所以它们应该是相同的。我运行了“cat/proc/sys/fs/file-max”,它们都具有相同的值。这是一回事吗? – Homer6
ulimit – Homer6