Увеличение рабочей нагрузки сервера при изменении размера файла php

У меня есть php-скрипт, который изменяет размер изображения до трех разных разрешений при загрузке. Когда я загружаю изображение, оно изменяет его размеры до 300 * 300, 80 * 80, 800 * 800, а также сохраняет исходный файл.

Сценарий, который я использую, – это ссылка: https://github.com/blueimp/jQuery-File-Upload/blob/master/example/upload.php

следующие изображения – системный монитор сервера. Первые два всплеска истории CPU – это изменение размера изображения, которое происходит при загрузке файла отдельно. Ниже перечислены файлы, которые загружаются из очереди.

Процессор WORKLOAD

Во время этой загрузки сервер не мог обрабатывать другие запросы. В то время я не смог получить доступ к другим страницам. либо страница загружается наполовину или вообще не загружается, либо загружается страница после завершения загрузки.

Мне нужно немедленное решение этой проблемы. как преодолеть эту проблему. я должен заполнить для сервера. есть ли pluggin для apache для изменения размера изображения или есть проблема с кодом.

Related of "Увеличение рабочей нагрузки сервера при изменении размера файла php"

Даже если изменение размера изображения потребовало 100% процессора в течение минуты, все равно можно было бы выполнять другие запросы: вы используете многопроцессорный сервер в многозадачной операционной системе (и, возможно, с несколькими ядрами тоже).

Однако, когда вы начинаете сеанс PHP, сеанс заблокирован : другие запросы, пытающиеся использовать один и тот же сеанс, должны ждать окончания первого запроса .

Вот почему вы не можете выполнять одновременные запросы при изменении размера изображения.

Вы должны закрыть сеанс, прежде чем выполнять длительную обработку (и в конечном итоге снова открыть его после этого).

Таким образом, это должно решить вашу проблему:

session_write_close(); resize_the_image(); session_start(); 

Попробуйте использовать ImageMagick для изменения размера вместо обычных функций PHP, что может немного снизить нагрузку.

Во время этой загрузки сервер не мог обрабатывать другие запросы

Я нахожу это очень удивительным, особенно учитывая, что есть 2 ядра (хотя вы не говорите, какую операционную систему / веб-сервер вы используете). Если это затронутая функция загрузки изображений, то я подозреваю, что это может быть из-за проблем в вашем скрипте PHP.

Разумеется, при обработке может быть уменьшено количество нагрузки, создаваемой сервером. Большинство из них связаны с запуском нового скомпилированного процесса (например, через exec) для обработки изображения, например, из комплекта утилит imageMagick – но не зная, какая ОС это, невозможно дать более конкретные советы.

Что касается уменьшения влияния преобразования изображения, я бы запускал управляемую очередь для обработки входящих изображений. Это обеспечит, чтобы обработка изображений работала только на одном ядре.