• 售前

  • 售后

热门帖子
入门百科

php-cgi历程cpu负载过高:禁用wordpress定时使命wp-cron.php

[复制链接]
李志敏 显示全部楼层 发表于 2021-8-15 19:57:22 |阅读模式 打印 上一主题 下一主题
一、问题描述
1、19号手动升级到wordpress4.1,21号早上7点看网站php探针,发现体系负载过高,差不多在1到1.5之间。
2、虽然对于双核处置惩罚器,这个值还可以担当,但是之间负载都只有0.2左右,而网站流量又没有忽然增长很多,以是推定肯定是出问题了。
3、eth 外网流量正常,lo 当地流量增长很快,reboot体系后(之间服务器已经稳固运行了632天9小时25分钟),1个小时不到就有了1G的流量。
4、top下令发现php-cgi 占用cpu很多,大部门时间都在80%到90%之间,cpu time+ 时间很长。
二、办理方法
1、百度搜索:php cgi cpu找到文章
https://www.jb51.net/article/92975.htm
2、修改php-fpm.conf
request_terminate_timeout 0s 改为30s
request_slowlog_timeout 0s 改为3s
重启php-fpm:/usr/local/php/sbin/php-fpm restart
3、检察slow.log发现,每一个统计时间点里都有如下提示
script_filename = /网站路径/wp-cron.php
[0xbfcaa950] do_action_ref_array() /网站路径/wp-cron.php
4、想到可能和wp-cron.php有关,于是百度搜索:wp-cron.php找到:
https://www.jb51.net/cms/495321.html
5、于是找到php-cgi历程占用cpu资源导致服务器负载过高的办理方法:禁用WP-Cron
编辑wordpress wp-config.php,加入:define(‘DISABLE_WP_CRON’, true);
然后 /root/lnmp restart 重启lnmp
重启之后cpu 占用终于正常,网站负载也减了下来,slow.log 也不再增长新的内容
三、清除可能的原因
1、禁用hyper cache
开始觉得可能hyper cache生成的缓存文件过多引起php负载,禁用hyper cache插件后发现负载非但不降,反而升了,阐明:不是hyper cache的问题且hyper cache可以起到降低php负载的作用。
2、删除eAccelerator
https://www.jb51.net/article/92978.htm
依据这篇文章提示:vi /usr/local/php/etc/php.ini 删除文件末尾Accelerator的那几行设置删掉,生存重启lnmp,发现问题仍旧,以是也清除了eAccelerator的原因,之后再重新在php.ini中添加上eAccelerator的设置。
3、file_get_contents的问题
https://www.jb51.net/article/28030.htm

https://www.jb51.net/article/92980.htm

参考上边两篇文章,ll /proc/PID/fd 没有发现非常。
yum install strace 安装(不安装会提示错误:-bash: strace: command not found) 后
strace -p pid,有雷同的提示错误:poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
页面不停的闪动,服务器负载骤增。
两篇文章中提到的:stream_context_create 设置超时时间,技能太差,完全看不懂要如何操纵,以是也没办法向下举行,放弃。
4、php5.2 和curl的兼容问题
办理方法:设置curl超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
也不知如何操纵,放弃。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作