php - php 图像调整大小时服务器工作负载增加

标签 php apache optimization image-processing

我有一个 php 脚本,可以在上传时将图像调整为三种不同的分辨率。当我上传图片时,它会将其调整为 300*300、80*80、800*800 并保存原始文件。

我使用的脚本是以下链接 https://github.com/blueimp/jQuery-File-Upload/blob/master/example/upload.php

下图是服务器的系统监视器。 CPU 历史记录的前两个峰值是单独上传文件时发生的图像大小调整。以下是从队列上传的文件。

CPU WORKLOAD

在此上传期间,服务器无法处理其他请求。那时我无法访问其他页面。页面加载一半或根本不加载,或者页面在上传完成后加载。

我需要立即解决这个问题。如何克服这个问题。我必须为服务器填满。是否有任何用于调整图像大小的 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/

相关文章:

尝试在锁定的表上运行 sql 时 PHP 脚本挂起

PHP:相互使用的类

java - Apache NiFi 自定义 NAR 启动期间出现 NoClassDefFoundError

scala - Spark : sc. WholeTextFiles 执行时间过长

JavaScript 处理

php - 同一页上的两个 mysql 查询搜索?

php - 如何调整 facebook iframe 应用程序窗口的大小

php - 如何优化服务器以使用许多正则表达式操作

apache - 使用 ISPConfig 3.0.4 设置默认虚拟主机

c++ - 符号性的线性插值优化