我有一个Debian 5服务器,它获得了大量的流量.现在服务器有4 GB的RAM,没有交换内存.我在顶部看到Apache进程每个消耗大约180 MB虚拟内存(VIRT)和16 MB真实RAM(RES).那么我可以同时运行多少个Apache线程?大约4 GB / 180 MB = 22或4 GB / 16 MB = 256?
解决方法
虚拟内存大小不如常驻设置重要.虚拟内存将包括映射的内容,例如共享库和诸如此类的东西(它们只会驻留在物理RAM中一次). RSS告诉你在内存中实际是什么,在哪里作为Virt.告诉您吞下了多少可用的虚拟地址空间.
你的第二次计算会更接近,尽管它很低.具有4GB RAM的服务器可以运行超过256个Apache进程.根据您的流量模式和IO等待限制,运行超过256可能是一个好主意,因为很多这些进程可能只是等待内核在设备之间铲除数据.也考虑像COW&事实上,所有内容都指向相同的’httpd’二进制文件,并且您可以获得更高的效率.
现在,用2GB的交换空间来重建你的系统.交换不再仅仅充当“慢速记忆”.
作为一个免责声明,自从我关心Linux内存管理的细节以来,已经有很长一段时间了,可能会对我的事实有所了解,但要点是坚实的!