Articles of php fpm

Linux Nginx + php-fpm + cron + mysqld =总是内存不足

我不明白。 我有一个VPS与Nginx和PHP的FMP和MySQL。 应该是非常轻量级的。 没有Apache,对吧? 当我重新启动时,它是非常轻量级的。 〜50/481 MB MEM使用。 非常可以接受的IMO 几天之后,有大约20个mysqld进程正在运行,7个php-fpm进程和〜8个getty进程,以及1024 MB交换满的3/4,服务器内存不足! 我不是专业人士,但我很确定这是不正确的… 我认为crons与它有关。 我有3个工作计划: 每分钟一个简单的(阅读新的邮件smtp) (每天晚上从大约30篇博客中阅读RSS) 每天早上一个简单的(2个小型数据库的mysqldump) 我不知道为什么我认为=)可能是因为简单的工作(SMTP,每分钟)总是在htop列表中。 (但总是用0%cpu,0%mem和0:00:00时间…) 20个mysqld也很奇怪,但是它们似乎并不需要太多内存。 php-fpm显然确实消耗了大量的内存。 在写这个10分钟内,内存已经从66 MB变成了120 MB! 最重要的6个消费进程是php-fpm: pool www 。 当我重新启动/etc/init.d/php5-fpm ,内存下降到〜70 MB。 php-fpm如何需要400 MB以上的内存? 那是怎么回事? 在过去的10分钟,交换空间已经稳定在98MB左右。 任何人都知道可能会发生什么? (我知道这是在整个服务器上的信息非常less。)如果你愿意,我可以添加细节。 我甚至没有运行任何像样大小的网站! 更多信息: htop –sort-key PERCENT_MEM的屏幕 – htop –sort-key PERCENT_MEM : 与ps xv , cat /proc/meminfo和top cat /proc/meminfo : […]

Nginx / PHP-FPM在外部设置404 / 5xx

所以我最近一直在试图通过构build一个基于pimcore的nginx vhostconfiguration来帮助社区。 除了一个小问题之外,一切工作都很好。 如果任何页面(cms页面)使用rss提要作为实例,并且rss提要返回503错误(不可用/ 404等),则整个页面被转发到503/404错误页面,而不是仅仅禁用项目。 这个问题不会显示在Apache上。 发生的问题可以说,例如,/ about是一个cms页面,其中包括rss提要。 关于页面是有效的,但是消耗的并且将在页面中显示的馈送返回503错误。 Nginx似乎正在拾取包含的资产,并将顶层页面(/ about)redirect到错误页面,而不是渲染大部分页面。 configuration是有点肮脏的,但完全正常工作,因为我已经尝试了许多不同的事情,使其工作,但我找不到正确的configuration集来解决这个问题。 设置内部; / / .php位置内的值也不会改变任何内容。 如果有人可以帮助我解决这个问题,那么我可以在保存实际的文档根目录之前,将其重新添加到社区文档中。 标准的虚拟主机使用: server { listen 80; server_name _; root /data/www/pimcore; access_log /var/log/nginx/$host-access.log; error_log /var/log/nginx/pimcore-error.log debug; include /etc/nginx/conf.d/_tpl/pimcore.cf; } 我通过虚拟主机加载的pimcore.cf文件如下所示: index index.php index.html index.htm; location ~* \.(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ { access_log off; log_not_found off; expires 360d; add_header Pragma "public"; add_header Cache-Control "public, […]

了解Nginx的try_files和fastcgi_path

我试图将一个非常简单的.htaccess文件转换为nginx: Options -Indexes -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] 正如我在谷歌和许多地方阅读,try_files应该做的伎俩。 我尝试了很多东西,但它只是不起作用,看起来像没有发送到index.php server { root /var/www/html/; location / { index index.php; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 文件结构很简单: /var/www/html/folder1/folder2/index.php /var/www/html/folder1/folder2/.htaccess 请求URL时的Nginx错误日志: 013/01/17 14:38:28 [error] 22379#0: *1 FastCGI sent […]

试图让“池看起来很忙”的错误停止与PHP的FPM

我有一台运行3核心和7GB内存的机器。 在这台机器上我们正在运行Nginx 1.4.2和PHP-FPM。 每个PHP-FPM进程使用〜30MB的RAM。 所以这是我设置的池configuration: [www] listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 user = nginx group = nginx pm = dynamic pm.max_children = 200 ; 200 x 30MB = 6000MB (leaving ~1.5GB for random stuff on the server) pm.start_servers = 20 ; 20 + (35 – 20) / 2 (rounded to the nearest 5) pm.min_spare_servers […]

nginx和php-fpm的性能cpu绑定

在繁忙时间我们的服务器是CPU限制。 我们正在达到100%的CPU。 在一个大型的ec2实例上使用php5-fpm和nginx。 每天提供约5000万个请求。 我们正在使用此服务器来提供JSON结果。 我想configuration我们的服务器来检测任何地方,我们可能能够优化我们的CPU使用率。 但大多数基准testing工具logging响应时间,而不是资源使用。 有什么工具可以确定每个事务的CPU使用情况吗?

Nginx将域名redirect到端口8000

我一直在寻find处找出为什么我的nginx服务器在一个域上导致301redirect,而不是其他。 我有两个站点configuration在这个服务器上的apache风格(网站可用)。 让我们说,domain1.com和domain2.com。 我也运行PHP-FPM。 这里是configuration Domain1.com server { listen 80; ## listen for ipv4; this line is default and implied server_name domain1.com www.domain1.com; root /var/www/domain1.com; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 […]

Nginx $ urivariables在处理过程中被截断

我们有NGinX作为PHP Web应用程序的代理服务器。 PHP脚本由PHP-FPM进程提供。 以下是nginx的configuration: location /app/ { alias /var/www/html; location ~* \.(js|css|png|jpg|jpeg|gif|ico|eot|svg|ttf|woff)$ { alias /var/www/html; expires 24h; log_not_found on; try_files $uri $uri; } rewrite /app.* /app/index.php?$args; location ~ \.php$ { try_files $uri =404; # typical php-fpm configuration } } # wordpress site hosted on root of the domain location / { try_files $uri $uri/ /index.php?$args; […]

使用mod_php时,php-fpm进程正在运行

我一直有一些内存不足的问题。 调整Apache之后,还有很多,但是在分析内存使用情况时我注意到了一些奇怪的地方 php-fpm在后台运行,据我所知,运行mod_php时没有用处。 我有一个很好的谷歌,但无法find任何关于这个问题。 使用mod_php (带有Suhosin-Patch的PHP版本:5.3.10-1ubuntu3.9)运行Apache / 2.2.22 ob Ubuntu 12.04, 据我所知, php-fpm与mod_php无关,所以为什么要安装(我没有明确安装它),为什么它在后台运行,并有一种方法,我可以禁用它(和这样做是否安全)? 这是从顶部除外 670 mysql 20 0 721m 50m 7728 S 0.0 10.3 0:08.95 /usr/sbin/mysqld 6486 www-data 20 0 310m 34m 3512 S 0.0 7.1 0:00.30 /usr/sbin/apache2 -k start 6489 www-data 20 0 287m 12m 3832 S 0.0 2.4 0:00.03 /usr/sbin/apache2 -k start 6474 […]

每天用php-fpm,nginx服务40M请求时,加载平均问题

我有FreeBSD服务器(HT,SSD,32Gb RAM的16核心),每天约有40M的HTTP请求。 所有请求都由nginx + php-fpm 。 在这些图表中,您可以看到在交通高峰期我们遇到了问题。 我不是系统pipe理员,请解释什么是“活动连接”,“写入”,“等待”,“正在读取”以及当服务器无法快速处理请求时为什么“写入”增加? 这里有一些更多的CPU,内存和负载平均图。 正如你所看到的,CPU和内存没有什么奇怪的事情发生,但Load Average也有一个高峰。 在这个Load Average高峰期间,我注意到在php-fpm.sock上有一个不存在的队列 netstat -Lan | grep php-fpm unix 2525/0/32246 /tmp/php-fpm.sock 队列中的成员数从0到12000不等。当值为0时 – 一切正常,我在60-100毫秒内得到http响应。 当值为5000-12000时可能需要3-10秒。 我也检查了是否有任何不寻常的进程,但无法find任何东西。 以下是几分钟前截图(现在一切正常,没有stream量高峰): 我的结论是:根据CPU和内存图,我可以说这个服务器可以提供越来越多的请求,但是由于php-fpm的非最优化工作,在交通高峰期是不可能的。 有关如何解决这个问题的任何build议?

PHP APC共享内存过期如何工作?

我正在使用APC,看到我仍然有25MB的可用内存。 但是,在Cache full count ,我已经看到了8 。 那么,为什么会这样呢? 如果我的理解是:APC不是一个LRUcaching,那么为什么我仍然需要释放内存,因为我已经达到了全数?