服务器规格build议

我目前有一个Ubuntu 10.04 LTS(32位)的Linode 512 VPS。

我最近打开了我的网站,吸引了很多来自社交networking的用户,而且我最近也遇到了一些CPU限制。

我每天约20k用户,今天我不得不重新启动Apache和MySQL进程几次,因为CPU使用率太高,我几乎不能input命令。

我想调整它,但我不知道是否有什么我可以做,这将帮助我解决它。

编码方面,我没有任何改变,我正在运行SQL服务器(在本地主机上)的最小数量的查询,我已经尽我所能来改善代码。

我正在运行GZip,重要的是说我的网站的主要目的是为图像提供服务。

我正在运行GZip,重要的是说我的网站的主要目的是为图像提供服务。

那可能是你的问题。 Gzip肯定会帮助文本繁重的内容,因为压缩很容易,但是图像已经被压缩了,并且试图用gzip进一步压缩它们是徒劳的。 closuresgzip,看看是否会导致你的CPU负载下降。

如果没有,那么下一步可能就是将数据库拆分为第二个linode 512.我将在重新调整当前的Linode之前执行此操作。 部署第二台机器时,请确保它位于同一个数据中心,但位于不同的主机上。 这样Apache和MySQL不会争夺磁盘IO。 另外,请记住,您应该使用Linode的后端专用networking在两台服务器之间进行通信。

今天我不得不重新启动Apache和MySQL进程多次,因为CPU使用率太高

那么你没有正确configuration你的服务器。 确保您拥有足够的能力来pipe理服务器是至关重要的。 而在networking服务器上performance糟糕的性能雪球 – 所以你已经结束了数百人无法使用你的系统。 在这个问题上投掷硬件是一个临时的解决scheme – 但是你需要学习更多的关于如何调整和pipe理你的服务器 – 远远超过这里可以提供的答案。

但是,是的,可能会有一些快速的胜利 – 但是您没有提供有关您的服务器configuration方式的有用信息,也没有提供有关工作负载的模式的信息。 随机猜测,我build议你看看内容caching – 特别是代理。 去读一些马克诺丁汉的在线的东西。

你显然不知道你的系统的哪些部分导致了你的问题 – 你需要开始logging你的apache日志并分析数据以找出性能问题的位置; 提示:只提供静态内容的服务器上的高CPU是非常不寻常的 – 你可能认为这是负载的来源 – 但我怀疑它。

我同意symcbean。 获取关于问题实际原因的一些数据将是一个不错的第一步,caching可以使轻量级服务器延伸很长的路。

看看Munin(并启用默认情况下未打开的MySQL插件)的统计信息。

除了设置caching标题(这里有一个Mark Nottingham的文章: http : //www.web-caching.com/mnot_tutorial/ ),Varnish可以坐在Apache的前面,并将静态内容caching在磁盘或内存中,减less负载Apache的。

其他人会认为Lighttpd或Nginx会为Apache提供静态内容的替代scheme。

如果你想在Ubuntu 10上对Munin或Varnish进行逐行设置,请告诉我,我会发布它们。

改善你的代码的最好方法是…你的代码不会被执行。

尝试使用低内存使用的Web服务器,lighttpd或nginx。

尝试让你的应用程序生成静态内容,并在更新完成后重新生成代码,这样,你的Web服务器将做最好的事情,提供静态内容,检查你的HTML和图像头。