我有一个networking服务器,目前主办两个Wordpress网站和一些基于Java的协作软件。 服务器有2G内存,目前正在使用大约1.8G的可用内存。 现在这里的情况几乎是一个stream量微不足道的试点项目,所以我觉得很明显我需要更多的内存。
我想知道,如果我要释放它,我可能会根据它获得的stream量来预测我的内存需求。 我在Google上探索过,而我发现的东西有点微不足道。 在计算内存需求时,是否应该使用一个很好的启发式方法作为服务器上基础(无stream量)负载的函数?
作为参考,可以看到free -m
的输出如下:
total used free shared buffers cached Mem: 2048 1832 215 0 0 0 -/+ buffers/cache: 1832 215 Swap: 0 0 0
对我来说,这看起来像使用的实际内存,并不是由于caching或其他任何东西的幻想。
我想我的协作软件的要求将不得不经过实验testing,所以这里是free -m
没有运行的软件:
total used free shared buffers cached Mem: 2048 1109 938 0 0 0 -/+ buffers/cache: 1109 938 Swap: 0 0 0
我的计划B要弄清楚这一点,就是向服务器添加一堆交换空间,给它一些stream量并根据交换使用的数量进行调整。 我只是想知道如果有人有一个好的经验法则来估计我应该提前多less记忆…或者如果我在想什么是疯了。
非常感谢(事实上,我真的很新)。
答案基本上是这样的。 在您的具体情况下,您安装的网站的质量和效率可能会受到质疑。
例如,本周我正在研究一个stream量相对适中的服务器,但是却消耗了4GB的内存。 在完成代码审查之后,整个网站使用类似于WordPress的现成的CMS,但是使用定制,我们发现了一个主要的瓶颈。 一旦我们解决了这个问题,服务器平均每天使用大约2GB的内存。 内存使用量下降50%!
我不会build议像分割服务器一样使用Ngnix和Apache。 只要使用Apache。 平衡两台不同服务器的configuration令人头疼,不值得边际收益。 Apache很好。 但是说,你应该考虑你的WordPress的PHP网站与Java应用程序与MySQL在同一个盒子。 根据我的经验,你应该做以下几点:
KeepAlive
设置,效果很好! 但是,我认为它已经被设置为100的MaxKeepAliveRequests
,这相当麻烦。 我通常把它设置为大约30个连接,一个2到3秒的小KeepAliveTimeout
。 关键是让KeepAliveTimeout
匹配平均页面下载所需的速度和一点点的开销/缓慢空间。 所以如果一个页面在1秒钟内加载,请保持2秒的KeepAliveTimeout
。 php.ini
的memory_limit
,并确保它不高于必要的。 默认是64M,但在很多情况下可以降到32M。 关于MySQL的调整,这可能需要几个星期才能确定。 调整脚本的原因是基于MySQL看到的真实stream量。 所以,你基本上让你的网站生活在世界上,等待2天(至less),运行调整脚本,然后等待几天再调整一些。 一个星期左右之后,你应该能够调整MySQL以及你的设置。