- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(我在这个论坛上搜索了好几个小时,找到了一些主题,但没有一个对我有用)
我正在使用 Wordpress:Varnish + Nginx + PHP-FPM + APC + W3 总缓存 + PageSpeed。
当我使用 Varnish 时,我第一次调用 www.mysite.com 它只使用了 10% 的 CPU。第二次调用,会被缓存。问题是在 URL 中传递请求参数。
只有 1 个请求 (www.mysite.com?1=1) 它显示在 top
中:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7609 nginx 20 0 438m 41m 28m S 11.6 7.0 0:00.35 php-fpm
7606 nginx 20 0 437m 39m 26m S 10.3 6.7 0:00.31 php-fpm
页面完全加载后,上面的这些进程仍然处于事件状态。 2 秒后,它们被另外 2 个 php-fpm 进程(如下)取代,这些进程持续 3 秒。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7665 nginx 20 0 444m 47m 28m S 20.9 7.9 0:00.69 php-fpm
7668 nginx 20 0 444m 46m 28m R 20.9 7.9 0:00.63 php-fpm
40% CPU 使用率仅为 1 个未缓存的请求!
奇怪的事情:
当我尝试执行 10 个请求(按 F5 键 10 次)时,服务器停止服务并在 php-fpm 日志中出现:
WARNING: [pool www] server reached max_children setting (10), consider raising it
我将该值提高到 20,同样的问题。
我正在使用 pm=ondemand
(pm.max_children=10
和 pm.max_requests=500
)。
最初我使用的是 pm=dynamic
(pm.max_children=10
, pm.start_servers=1
, pm.min_spare_servers =1
, pm.min_spare_servers=2
, pm.max_requests=500
) 并且发生了同样的问题。
请问有人能帮忙吗?任何帮助将不胜感激!
附言:
最佳答案
首先减少缓存的堆栈。当您已经在使用从内存中提供服务的 w3 缓存时,为什么还要使用从内存中提供页面的 varnish?
W3cache 是 CPU 密集型的!它不仅可以缓存项目,还可以动态压缩、缩小和合并文件。
您的机器上总共有 512MB 的内存,这并不多,而且您的 CPU 能力也低于现代智能手机。由于 xen 虚拟化层,与根服务器相比,内存访问速度极慢 - 这就是少即是多的原因。
确保 w3cache 已正确设置,以便它实际缓存项目,然后预热缓存,您应该没问题。
看看 Google 的 nginx pagespeed 模块 https://github.com/pagespeed/ngx_pagespeed ,它可以做与 w3cache 相同的事情,只是效率更高,因为它发生在网络服务器中,而不是在 PHP 中
Nginx 也可以直接从 memcached 服务 http://www.kingletas.com/2012/08/full-page-cache-with-nginx-and-memcache.html (示例文章,可能需要更多调查)
关于wordpress - PHP-FPM 为单个请求使用 40% CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633190/
我正在尝试使用 FPM 模块安装 PHP,但我根本做不到。我在 Mac OS Big Sur 上 brew install php74 --with-fpm --with-debug --with-c
我在使用 traefik 设置 mailcow 时遇到问题,遇到网关超时。我对 nextcloud 也有这个问题,所以我真的很感兴趣,是什么导致了这些网关超时问题。 我猜这与端口 9000 和上游 p
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 Red Hat Linux 服务器上安装了 PHP 7,但显然由于在服务器上运行一些命令来配置 PHP,我丢失了 php-fpm.sock文件。 任何人都可以帮助我了解文件的内容吗? 最佳答案
我的情况是这样的,我有两个 Docker 容器: 在端口 9000 上运行 PHP-FPM 运行 nginx 并拥有 PHP 文件(PHP-FPM 容器应该可以访问这些文件吗?) 我不断收到以下错误:
项目的 Git 存储库:https://github.com/tombusby/docker-laravel-experiments (撰写本文时 HEAD 为 823fd22)。 这是我的 dock
我正在尝试获取在 Windows 上运行的 Homestead Improved Vagrant VM 实例。请参阅Homestead Improved on Github 。我正在遵循这个简单的介绍
我知道我真的很接近这个,但我无法得到最后一部分 在职的。我几乎可以肯定它与 WordPress 有关 容器和 PHP 容器需要在同一个目录下吗?所以 PHP可以处理那个目录下的文件吗?我一直在努力 一
501 25131 1 0 9:31下午 ?? 0:00.37 /usr/local/opt/php/sbin/php-fpm --nodaemonize 501 2
我正在尝试在 Docker 镜像上设置 php-fpm。 这是我的 docker-compose.yml 中的服务: wordpress-service: build: context:
我在使用PHP-FPM遇到这个奇怪的问题。首先,我不是PHP方面的专家。我正在构建一个应用程序,PHP将仅与MySQL通信以推送和提取数据。 问题: 我有一个Dockerfile,在其中我对PHP-F
这是我的 docker-compose.yml version: '2' services: web: image: nginx:latest ports:
我一直在尝试让 php-fpm (w nginx) 与默认端口 (9000) 一起工作,但它不起作用。我正在尝试使用 php 7.1(也尝试过 7.0 和 5.6)。服务启动正常,我还可以在 ss/n
我正在努力寻找适用于 php-fpm 的监视器配置。 这是我试过的: ### Monitoring php-fpm: the parent process. check process php-fpm
在 fastcgi_finish_request(); 语句后在我的 php 脚本中实现了一些后处理后,我担心会出现一些差异。 看起来 PHP 没有在 fastcgi_finish_request
当一个特别长的字符串被打印到 php5-fpm.log 时,该字符串在末尾被截断并显示“...”(不带引号)以表明它已被截断。我怎样才能让它显示整个字符串而不考虑长度? 如果需要的话,我将 Nginx
php fpm 网站上的文档说 php fpm 从 5.3.3 开始是 coe php 的一部分 我正在运行 5.3.10,如何检查它是否正常工作?我以为这是在端口上运行的服务? 最佳答案 假设你在
我有一个运行 Apache/2.2.22 (Debian)、PHP 5.6.17 作为 FPM 和 MySQL 5.6.25 的服务器。 该项目使用名为 Redaxo 的 CMS 运行(我认为这并不重
我刚刚安装了一个 nginx+php-fpm 服务器。一切似乎都很好,只是 PHP-FPM 从不将错误写入其日志。 fpm.conf [default] listen = /var/run/php-f
本文实例讲述了PHP-FPM 设置多pool及配置文件重写操作。分享给大家供大家参考,具体如下: 重写配置文件 1、清空php配置文件 命令:> /usr/local/php/etc/p
我是一名优秀的程序员,十分优秀!