最近在解决一个项目现场问题的时候,我发现管理后台访问特别卡顿,几乎无法访问。首先说明一下,我们的管理后台是Apache+PHP+MySQL架构的。当我打开任务管理器的时候,看到httpd进程占用CPU只有不到10左右,就会影响到整个系统的正常使用了。这个现象很奇怪,我也是第一次遇到过。像其他项目上,并发高峰期httpd进程可能会占用CPU到50%~70%左右,但是,后台仍然是可以正常访问的。由此推断,这个可能和服务器的配置有关系,也和Apache对服务器资源的占用有关系,具体是什么关系,可能牵扯到的知识太多了,我也不可能全部掌握,再者说,项目出现问题了,我就要立刻解决掉,恢复正常使用。

既然CPU还有很多的资源可以使用,那么我就可以多创建几个Apache的进程做负载均衡来分摊这个并发压力。具体实现方法是,利用Nginx的反向代理模式把请求均匀地分配给三个Apache的服务。也就是说,Nginx作为请求的入口,它不做任何的逻辑处理,只是负责把请求分发给后端的Apache处理。

Nginx的关键配置代码截图如下所示

image.png

配置完成以后,刷新一下后台,也可以正常访问,在数据请求的高峰期可以看到三个Apache的进程都在处理请求。如图所示

image.png

这样三个Apache进程分摊了所有的请求,这个时候再刷新一下管理后台,发现很快就可以获取到数据。的确比之前一个进程访问的后台要快很多。

标签: php技术

评论已关闭

辽公网安备21010602000703号 备案号:冀ICP备2022001219号