我有一个 php 脚本,可以在上传时将图像调整为三种不同的分辨率。当我上传图片时,它会将其调整为 300*300、80*80、800*800 并保存原始文件。
我使用的脚本是以下链接 https://github.com/blueimp/jQuery-File-Upload/blob/master/example/upload.php
下图是服务器的系统监视器。 CPU 历史记录的前两个峰值是单独上传文件时发生的图像大小调整。以下是从队列上传的文件。
在此上传期间,服务器无法处理其他请求。那时我无法访问其他页面。页面加载一半或根本不加载,或者页面在上传完成后加载。
我需要立即解决这个问题。如何克服这个问题。我必须为服务器填满。是否有任何用于调整图像大小的 apache 插件或代码是否有问题。
最佳答案
即使调整图像大小在一分钟内占用了 100% 的 CPU,仍然可以执行其他请求:您在多任务操作系统(可能也有多个内核)上使用多进程服务器。
但是,当您启动 PHP session 时, session 被锁定:尝试使用同一 session 的其他请求必须等到第一个请求结束。。 p>
这就是为什么在调整图像大小时不能执行并发请求的原因。
您必须在进行长时间处理之前关闭您的 session (并最终在之后重新打开它)。
所以,这应该可以解决您的问题:
session_write_close();
resize_the_image();
session_start();
关于php - php 图像调整大小时服务器工作负载增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360879/