我已经在 Amazon EC2 上运行了一个非常小的 wordpress 站点大约 2 个月,使用的是免费层微型实例。
我每个月都会因为超出磁盘 I/O 限额而被收取几美元的费用。
我研究了如何减少磁盘 I/O,并进行了一些更改,例如通过更改 apache.conf、最小化图像和插件等添加允许浏览器缓存图像。
然后我将 APC 模块添加到 PHP。我预计这会大大减少 I/O,但似乎没有任何区别。
APC状态(apc.php):
http ://oi41.tinypic.com/30t5gud.jpg
单个网页加载期间的 vmstat 输出:
似乎在网页加载期间正在进行 I/O。我不明白为什么,因为 PHP 应该在 APC 缓存中并且图像已经缓存在我的浏览器中。
我的目标是简单地减少 I/O,从而降低成本。我能做些什么来实现这一目标?例如,APC 设置是否不正确或是否有其他一些技术可以避免 I/O?
(PS:W3TC wordpress 插件对我不起作用。我可能没有正确安装它 - 它把我锁在站点之外,使 CPU 过载并导致站点崩溃。)
我们可以看到您的实例内存运行非常低,实际上正在交换。这是您需要付费的磁盘 I/O,也会导致您的网站运行速度变慢。
通过停止不必要的进程并调整您的网络服务器以运行更少的工作人员(例如 Apache 或 php-fpm)来释放一些内存。
一些东西...
尝试像 Wordpress 的 batcache 这样的东西,因为它只缓存经常访问的页面,从而减少预缓存所有内容的一些开销
如果您的可用内存很少,我建议为您的 HTTP 服务器切换到 NGINX。这是超级有效的。
检查MySQL的资源利用率。在 99% 的情况下,它的配置过于慷慨,会占用所有可用的服务器内存。