我的个人wordpress博客开通也有二个星期了,除了写了几篇文章之外,对云服务器、       wordpress的使用也是非常的感兴趣,从一开始的配置,到各种插件的探索,玩的不亦乐乎。自我感觉个人博客的有意思之处也是在此:建设的乐趣。就像小时候非常爱搭的“房子”一样。哈哈:)

这几天访问网站时,明显感觉网页的加载速度变慢了。刚刚开通博客时,网页可以“秒开”,现在居然要两三秒了。因为不知道从哪里看到网站的访问速度也影响搜索引擎的排名,我决定分析一下网页变慢的原因。可能的原因无非以下两点:

服务商网络不稳定,网速下降;

网站程序因为各种原因响应速度降低,如需要加载外部链接,插件过多,数据库访问速度等等;

首先是第一点,因为购买的是非常入门款的云服务器,机房也不是最高等次的,网速出现时好时坏还是有可能的。为了排除是网站的影响,我决定在 nginx的根目录下 创建了一个名为info.php的文件,内容如下:

1

在浏览器中访问网页,非常顺滑。看样子服务提供商还是非常靠谱的,“诚不我欺也”。那么问题就在于网站本身了。

可能的原因,我感觉可能是因为最近安装了一些插件,是否可能内部链接了其他的服务,导致网页加载速度变慢?于是卸载了最近尝试的几个插件,发现网页加载的速度没有明显的变化,衰。

那么,是不是因为动态网页的缘故,加载网页时服务器的cpu负载太高? 在加载网页时,通过glances 监控,cpu的利用率也只有11%左右,像下面这样:

所以说,说cpu占用过高也是站不住脚的。不过,观察到一个现象,每当网页加载时,mysqld 都会产生 15-17k/s的 IOW 。有没有可能是mysql没有优化导致卡在这块了呢,而且,mysql 到底在写啥?带着这个疑问我决定查看mysql的执行记录。

首先登录mysql :

mysql -uroot -p

1

mysql-uroot-p

查看 变量信息

show variables

1

showvariables

可以看到其中“general_log” 变量的值为OFF,log 的地址如下。

执行语句:

mysql> SET GLOBAL GENERAL_LOG = ON;

Query OK, 0 rows affected (0.00 sec)

1

2

mysql>SETGLOBALGENERAL_LOG=ON;

QueryOK,0rowsaffected(0.00sec)

然后加载网页,查看在/var/run/mysqld/mysqld.log生成的日志。

发现日志中,基本是SELECT 语句,居然没有写库操作,那么mysqld 的写入操作(当然也有可能是写入日志或者其他)是什么情况,有知道的同学麻烦赐教。而且,mysql的cpu及内存占用均比较小,看样子,mysql的访问也不是问题所在。

那么,只能从系统性能方面着手了。非常有可能网页访问速度下降是因为系统性能下降导致的。特别让我注意的是,glances 标红了我的内存占用,居然有90%多。在glances 中按 “m”键,可以按内存占用排序进程,发现占用内存最多的进程都是一个叫做“php-fpm”的进程,而且有19个。难怪内存占用如此之高。为啥存在如此之多的php-fpm进程呢,”I did some digging”,大概原因是这样的:

因为nginx将动态网页交给php解析,因此php与nginx通过socket通信,这些php-fpm进程大部分是解析php网页的。但是为了提高性能,不可能为每一个请求单独开启一个进程处理完毕后关闭。因此php-fpm会保留一些“idle”进程用于等待请求。当然,对于访问量大的网站来说,更多的”stand-by”进程肯定能保证访问速度了,前提也是你有大量的内存可供使用了。对于我这样的虚拟机来说,肯定是撑不起这么多的进程的。

php-fpm进程的个数可以通过配置调整,打开 /etc/php-fpm.conf ,可以看到php有两种方式,一种是静态(static),一种是动态(dynamic),静态配置下,系统会默认启动一定数量的进程,数目与pm.max_children一样。如果是动态配置,进程数受四个参数影响。

pm.start_servers;

pm.min_spare_servers

pm.max_spare_servers

pm.max_children

第一个参数是系统启动时的进程个数,第二个是最小的idle进程个数,当空闲进程低于这个数字的时候,系统会自动启动到最小进程个数。我的配置文件默认参数为20。显然我的机器的当前进程数主要受这个影响。第三个是最大空闲进程数,当空闲进程超过这个时,系统会自动清理。第四个是最大的进程数。

按照一个进程大概50M内存占用的估计,以及我超低访问量,以及超迷你的内存,我修改参数如下:

pm.start_servers=5

pm.min_spare_servers=5

pm.max_spare_servers=10

pm.max_children=20

1

2

3

4

pm.start_servers=5

pm.min_spare_servers=5

pm.max_spare_servers=10

pm.max_children=20

保存,重启php服务

service php-fpm restart

1

servicephp-fpmrestart

重新访问网页, 网页访问又重新变得顺滑了。开心,哈哈。

As you can see , I am a rookie.

php 解析网页慢,网页访问变慢的原因分析及优化相关推荐

  1. 电脑使用变慢七大原因分析

    转自:微点阅读  https://www.weidianyuedu.com 很多朋友在使用电脑的过程中都会发现电脑越用越慢,而其中的大部分人会抱着"慢就慢点儿吧"的心理继续使用,殊 ...

  2. Android 安装自身更新APK时,包解析错误或无法访问文件的可能原因

    [啰嗦] 其实能找到我的文章的小伙伴估计早已解决99.99%的问题,我这里讲的是一个比较白痴的问题及很简单地解决,供有可能需要的人参考. [起源] 在做Android自动更新时,用了一段Android ...

  3. linux 读写时间变长,linux时钟变慢的原因分析【转】

    今天发现现在使用的噪声仪器时间不准,每天满大约10几分钟,经过查找资料,发现以下一篇中提到的问题很可疑,转载如下: 听说有人抱怨他的Linux服务器或者嵌入式Linux开发板上的时间越来越慢,当时念头 ...

  4. 使用MyBatis-Plus 导致接口响应变慢的原因分析

    问题: 最近遇到的一个问题,有一个查看订单记录的接口,在生产和预生产测试接口响应速度都是毫秒级别的速度,但是一到生产上接口响应速度需要7~8s,这个接口显然是不能使用的需要优化. 分析原因: 1.由于 ...

  5. 连接FTP显示无法解析服务器,Serv-U服务FTP无法连接的原因分析

    Serv-U是当前主流的FTP服务器软件之一,被被广泛运用的FTP服务器端软件.Serv-U服务具有设定多个FTP服务器.限定登录用户的权限.登录主目录及空间大小等. 目前,在使用RAKsmart W ...

  6. 青年程序员头发变白的原因分析及治疗之法

    少白头的防治:注意饮食的调节,不能偏食,多吃杂粮.豆类.蔬菜水果富含维生素的食物,含铜较多的动物肝脏.柿子.西红柿.土豆.菠菜等和高蛋白食品如花生.蛋类等:本病并不意味着未老先衰,不必为此忧心忡忡,应 ...

  7. Windows开机和关机变慢的原因分析和解决办法

    一.Windows启动慢问题:       前言:一般情况下,电脑一开机就可以立即进入Windows 系统,通常在滚动条滚动三下以后,一般都能进入系统.但常常由于种种原因常常未能如愿,甚至一开机就死机 ...

  8. html 游戏键盘,HTML tabindex属性与web网页键盘无障碍访问

    本文要介绍的是属性tabindex和下一篇要介绍的accesskey,与web网页无障碍访问息息相关,而且是键盘访问领域的.这些属性不仅可以触发浏览器层面的行为,本身对HTML的元素的交互特性甚至UI ...

  9. python的网页解析器_Python网页解析器使用实例详解

    python 网页解析器 1.常见的python网页解析工具有:re正则匹配.python自带的html.parser模块.第三方库BeautifulSoup(重点学习)以及lxm库. 2.常见网页解 ...

最新文章

  1. named 客户端无法解析_解析天联高级版客户端无法访问用友U8问题
  2. android电视视频app下载,央视频APP智能电视版下载-央视频电视版客户端 1.9.0.53139 安卓版-玩友游戏网...
  3. Netty 高性能特性
  4. Python中的遇到的错误(持续更新)
  5. 华科计算机网络报告,华科-计算机网络实验报告-Java Socket编程-网络组建实验
  6. YEARWEEK函数来得到本周的日期
  7. 又一波“打工人”财富自由!快手赴港上市,4000员工人均身家一夜涨至3000万...
  8. 随想一·杨柳岸晓风残月
  9. fatal: remote origin already exists. (远程来源已经存在 解决办法)
  10. 域名解析中的cname解析和显性URL跳转和隐性URL跳转三者有什么区别
  11. 20. 静态区块(Static Blocks)
  12. 【生信进阶练习1000days】day13-GEOquery
  13. JSP电子病历管理系统
  14. 涵盖农业、可再生能源、酒店、金融服务、创意服务、科技、林业和建筑业的20家新公司加入《气候宣言》
  15. 【软考软件评测师】2016综合知识历年真题
  16. php国际象棋棋盘奇行奇列,国际象棋怎么玩
  17. 【软件需求工程与建模】13组组队项目选题介绍及项目计划安排
  18. 项目5—中断控制LED下降沿有效与低电平触发
  19. 关于D3D中AGP显存,内存,显存三种内存的解释
  20. 1143 -- 函数解析式

热门文章

  1. mysql函数之获取随机数(rand,round,floor,ceiling函数)
  2. 【教程】在Steam Deck上安装系统引导软件rEFInd
  3. Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置
  4. 自我定位与职业规划(完结)
  5. 生物学和计算机科学结合的学科,生物信息学和计算生物学
  6. 7-1 给出成绩等级 (6 分)编写一程序实现以下功能从键盘输入一个一百分制成绩,如果不在0~100范围内,则要求重新输入数据,直到输入的数据在0~100范围内。将输入的数据转换成等级‘A’
  7. 使用fbinst生成u盘启动列表大小不能太大
  8. 再次更新!ultraedit v29.0.0.102 简体中文版
  9. <有搞头>---aardio+Python
  10. 动网论坛密码暴力破解程序代码