由于网站访问量大,电脑的cpu一直非常高,周五晚上挂了,周六又重启了。
结果今天发现还是非常高,看了下,主要是php生成大量图片,需要耗费很多cpu。
怎么办?图片主要是添加文字和水印,有的一次请求会对20张图片做处理。
------解决思路----------------------
php的gd库是用c实现的,我以前测试过,和直接用c生成效率基本差不多,所以图片处理这块,我觉得怎么优化都要耗费服务器资源,优化空间不大。
如果图片处理可以不用实时的,不需要立马展示给用户
把图片处理做成异步的,让后台启动php脚本来跑,每次最多处理的图片数做限制,这样电脑压力不会太高。
要是不行,那就只能做成分布式缓解压力了。
------解决思路----------------------
一个请求处理多张图片应该不是问题
问题应该在你允许的并发数是否过多
加大 web 服务器的并发响应数的同时,是需要同时增加内存的
不然频繁的交换区操作,必将造成 cpu 的调度负担