我有一个简单的问题,关于我在搜索时找不到的东西。我完全是服务器菜鸟,所以请不要生气。
当我使用 ssh top 跟踪 CPU 使用情况时,我可以看到用户进程在调用托管在我服务器上的网站时导致大约 20% 的 CPU 负载。
我有一个具有 8 个核心和 16GB RAM 的 VPS 服务器,并且意识到那 20% 只是一个核心,但是,我仍然很惊讶一个访问者会导致其中一个核心的使用率达到 20%。
假设有 50 位用户同时访问该网站,会发生什么情况?理论上这会导致 CPU 过载,对吗?
该服务器正在运行 Plesk,并使用 nginx 作为反向代理。
造成负载的进程是 PHP fpm,而查看 ssh 顶部屏幕时 nginx 几乎没有出现。
对于一个访问者来说,这种短暂的峰值(2 秒左右)是否正常?如果是,我可以在这个服务器上托管多少个 wordpress 网站,假设每个网站有 20 个并发访问者?
非常感谢你的帮助。
答案1
您应该考虑安装某种缓存插件,这样您的 WordPress 就可以缓存响应并使用它们,而不是每次都生成一个新页面。
有关于 WordPress 优化的优秀指南这里和这里。如果您遵循这些,尖峰很有可能会消失......
确保你的 opcache 已启用php.ini
。如果你想进一步缓存,请尝试安装apcu 模块(尽管使用 Plesk 可能会有些棘手)以及支持它的插件WordPress 端
答案2
PHP 占用相当多的 CPU。50 位浏览您网站的用户每次只会发出大约 2-3 个请求。50 个同时发出的请求可能代表 1000 人使用您的网站,50(用户)* .2(CPU)= 10(核心)。由于您有 8 个核心,因此可能会有一点延迟,但不会太多。
Wordpress 缓存插件还可以,但仍然会调用 PHP,这会占用大量 CPU 和 RAM。它们可以减少资源使用量并提高性能。对于拥有大量匿名用户的网站,更好的解决方案是在 Web 服务器级别进行页面缓存。我有一个WordPress 的 Nginx 页面缓存教程你可能会觉得它很有趣,但它对你来说可能太复杂了。