记一次PHP优化极速、赛车源码平台搭建架设案例

一、案例分析。
极速、赛车源码平台搭建架Q:2947702644
我们可以想到,既然是访问缓慢,有时候直接访问不了,以前是没问题的,到现在就突然出现了问题,那必定是我们的nginx与php响应不过来导致的,原因可能是其他域名网站的用户连接数巨增导致的。那我们找到问题的根源解决并优化就可以了。接着凭着自己的经验与百度,去解决问题。

二、问题解决与过程分析

1、Nginx优化:

1、查看nginx的日志,找出错误

$ cat /usr/local/nginx/logs/error.log | grep error
1.png

没发现错误,正常

查看后台域名的access.logs

$ cat /var/log/access_nging.log | grep error

(这里没及时截到图,日志是被刷了,本地做了日志切割,并定时删除了)

发现日志日志里面可以找到error错误信息,并且有十几个502错误。找到出现的问题了。

2、问题分析以及nginx优化

1、nginx打开文件数限制导致的。

1)、首先我们想到可能的原因nginx的打开文件书的问题,增加nginx的打开文件数

进入nginx配置文件,发现打开文件数为4096,果不其然,打开文件数没有调到最佳,可能是这个原因导致的。我们需要把4096改为51200;保存重新加载nginx

vim /usr/local/nginx/conf/nginx.conf

worker_rlimit_nofile 51200;

events {

worker_connections 51200;

}

#service nginx relaod

2)、Linux系统文件限制

我们改了nginx的打开文件配置,不一定有用,我们需要看一下系统的限制的打开文件数

ulimit –n

2.png

我们可以看到系统的文件打开数量也是4096,接下来,我们更改一下系统的打开文件数,并配置永久生效。

进入配置文件

vim /etc/security/limits.conf

更改参数:

  • soft nofile 65535
  • hard nofile 65535
  • soft nproc 65535
  • hard nproc 65535

    注:系统限制可以随便改,我只要比nginx的打开文件数大就好。

3、nginx的fastcgi连接时间太短导致的。

一般nginx响应php,都是通过FastCGI接口来调用,所以fastcgi参数配置很重要,当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器,而很多php的网页都是采用动态程序。所以fastcgi的配置,也起的至关重要的作用。所以这是一个优化不可缺少的一部分。

进入nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

把fastcgi的connect、send、read的参数的时间改成300,配置如下:

3.png

重新加载nginx

#service nginx reload
4、访问域名测试。

重新访问域名,发现网页已经加载出来了,持续访问了几次,发现访问还是有点慢,虽然访问稳定了。到这里,我们就可以把问题指向到php里面了,继续下一步的php优化。

2、Php优化:

1、查看php日志

首先,我们需要跟nginx的操作一样,需要先查看一下日志。

#tail -n 100 /usr/local/php/var/log/php-fpm.log

4.png

在日志里面我们可以发现,php日志出现警告

WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)

从告警的意思,我们知道php出现告警了,而且是叫我们增加php的,pm.start_servers, or pm.min/max_spare_servers的值。

2、原因分析

首先我们,看到日志只是出现这个警告,证明还不是很严重,至于为什么出现这个警告,接下来我们一起分析一下。

首先我们很明确的知道,pm.start_servers,、pm.min/max_spare_servers在php里面是起着啥作用先,为什么会出现这个警告。我先把的以前的配置参数贴一下。

5.png

接下来我们分析一下这几个参数的作用:

参数分析:

pm= dynamic 表示php启用的动态模式 注: php有动态和静态(static)两种工作模式,默认是动态模式。

pm.max_children 表示静态下最大线程数

pm.start_servers 表示动态下启动时的线程数,该参数大于pm.min_spare_servers,小于pm.max_spare_servers

pm.min_spare_servers 表示动态下最小空闲线程数

pm.max_spare_servers 表示动态下最大空闲线程数

工作模式:

Static模式

当工作模式设置为静态后,就只有pm.max_children项有效,即表示php-fpm工作时一直保持的线程数。

Dynamic 模式

动态模式下,与他相关的参数有pm.start_servers、pm.min_spare_servers 、pm.max_spare_servers,分别表示开启的php进程数,最小的进程数、与最大的进程数。

模式比较:

静态模式的话,比较适合一些内存比较大一点的服务器,8G及以上的,因为对于比较大内存的服务器来说,设置为静态的话会提高效率。

动态模式适合小内存机器,灵活分配进程,省内存。可以让php自动增加和减少进程数,不过动态创建回收进程对服务器也是一种消耗。

3、php参数优化

首先我们需要考虑一下问题,如何去调试参数,达到优化的目的呢,一般来说开始的时候一个php-fpm进程只占用3M左右内存,但是运行一段时间后就会上升到20-40M,这是因为PHP程序在执行完成后,或多或少会产生内存的泄露。

所以按理来说php的最大的进程数,大概是本地内存/40,因为也要考虑系统占用内存的的这种情况,我们不能直接把除处理的结果,当成的最大进程数,不然你会死翘翘的。

我的服务器是8G内存的,所以按理来说是,最大的php进程数是200左右,所以按这个参数我做了一下调整:

6.png

采用静态模式,最大进程数设为125-150之间,搞定。

重新加载php

#service php-fpm relod

查看进程数:

netstat -anpo | grep php-fpm | wc -l

128

效果达到了

原文地址:http://blog.51cto.com/13925806/2160562

时间: 2024-07-31 11:45:13

记一次PHP优化极速、赛车源码平台搭建架设案例的相关文章

极速赛车源码修复之OLEDB和JDBC

一.OLE DB 极速赛车源码修复对象链接与嵌入数据库(OLE DB)也是微软公司提出的数据库连接访问标准,企 娥:217 1793 408. OLE DB概念 OLE DB是基于组件对象模型(COM)来访问各种数据源的ActiveX的通用接口,它提供访问数据的一种统一手段,而不管存储数据时使用的方法如何.与ODBC和JDBC类似,OLE DB支持的数据源可以是数据库,也可以是文本文件.Excel表格.ISAM等各种不同格式的数据存储.OLE DB可以在不同的数据源中进行转换. OLE DB基于

tinyproxy服务器的搭建以及极速赛车源码修复

安装tinyproxy 极速赛车源码修复,企 娥:217 1793 408 安装 # centos sudo yum install tinyproxy # ubuntu sudo apt install tinyproxy 打开配置文件 vim /etc/tinyproxy/tinyproxy.conf 搜索并修改以下配置 # 注释掉这一行 # Allow 127.0.0.1 # 修改端口号 Port 1801 修改完了保存退出 重启服务: systemctl restart tinyprox

微信北京赛车源码下载搭建

微信北京赛车源码下载搭建 http://hubawl.com 程序中可以定义为: @tf.custom_gradient def f3(x, n): v = tf.pow(x, n) def grad(dy): return (dy* (n*tf.pow(x, n-1)) ).numpy() return v.numpy(), grad def dp1_f1(x): return 64*x*(1-x)*f3(1-2*x,2)*f3(1-8*x+8*x*x, 2) 1 2 3 4 5 6 7 8

h5棋牌游戏公众号开发 app开发+源码平台搭建分享教程

h5棋牌游戏公众号开发 app开发+源码平台搭建分享教程下载diguaym.com/h5 扣扣2152876294 多合一集合游戏 聚集了h5牛牛.金花.二杠八.十三水.三公等 全新界面UI设计(WeChat H5 public number landlords chess source development, Download diguaym.com/h5 buckle more than 2747044651 in one set of game 要建立一个安全Linux服务器就首先要了解

LNMP源码平台搭建

一.Mysql(5.5.54)二进制免编译安装 1.下载和解压 命令 wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.54-linux2.6-x86_64.tar.gz 命令 tar -zxvf mysql-5.5.54-linux2.6-x86_64.tar.gz -C /usr/local/mysql 2. 创建mysql用户 说明:不需要家目录,也无需ssh登录 命令 useradd -s /sbin/nologin  -M m

WINPAY系统源码平台搭建

目前仍有太多区块链系统将这种令人惊讶的新技术视为一种极好的数字公证书或分布式数据库服务.只看到区块链的人错过了一些其他重要的东西-标记化,即使用区块链通证来表示特定的资产--是这项技术的一种改变游戏规则的用途. 任何人都可以使用一个通证来表示一个项目,因为它在整个供应链中移动,从而确保它不会同时出现在两个位置.同样,也可以使用通证来表示传统货币中的流动资产,这种方法提供了基于区块链的解决方案的所有好处,而无需交换风险.vx159.1853.7626 区块链要走向主流人群还有很长的路要走.即使是比

2018新版微信极速赛车飞艇8合一源码下载搭建

2018新版微信极速赛车飞艇8合一源码下载搭建教程:http://fanshubbs.com/thread-255-1-1.html 参考搭建源码项目 <微信公众号北京赛车PK10源码下载> 示例代码 C++ #include "hpsocket/HPSocket.h" /* Listener Class */ class CListenerImpl : public CTcpPullServerListener { public: // 5. process networ

什么是区块链北京赛车源码下载平台定制开发钱包?

在介绍区块链钱包之前,我们先详细介绍下比特币的地址生成过程. 北京赛车源码下载平台定制开发[大神源码论坛]dsluntan.com [布丁源码论坛]budingbbs.com 企娥3393756370 红黑玩法定制开发 龙虎和玩法定制开发 大小单双和玩法定制开发 斗牛玩法定制开发 需要的请联系客服:3393756370 大的流程是:私钥-->公钥-->地址. 先啰嗦一点计算机知识:位,字节,字,KB,MB 位:"位(bit)"是电子计算机中最小的数据单位.每一位的状态只能是

数据库极速飞艇源码出售之分库分表-垂直

一.数据库瓶颈 不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就可以想象了吧(并发量.吞吐量.崩溃). IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的随机IO,降低查询速度 -> 分库和垂直分表. 第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库. CPU瓶颈第一种极速飞艇源码出售Q3266397597[da