Я тестирую две версии одного и того же скрипта. Каждый сценарий выполняет одну и ту же операцию, но отличается тем, как он выводит результат. Каждый скрипт:
Первый скрипт выводит окончательное изображение следующим образом:
imagepng($img, $cacheFile, $quality);
imagedestroy($img);
$fp = fopen($cacheFile, 'rb');
header("Content-Type: image/png");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Length: " . filesize($cacheFile));
header('Content-Transfer-Encoding: binary');
ob_end_clean();
fpassthru($fp);
2-й сценарий:
header('Content-Type: image/png');
imagepng($img, null, $quality);
imagedestroy($img);
Оба сценария работают хорошо, когда я вызываю их прямо в браузере и получаю ожидаемый результат. Но когда я использую JMeter для нагрузочного тестирования каждого из них, я часто получаю неописанные 500 ошибок в ответе в каждом скрипте.
журнал ошибок Файл, который обычно создается при наличии ошибок в скрипте, отсутствует.
Как я могу устранить причину ошибки 500? Есть ли способ узнать, является ли общий хостинг отрезанием ресурсов, и поэтому скрипты не выполняются или это что-то еще? Как я могу оптимизировать свои скрипты для лучшей производительности во время большой нагрузки?
В итоге я переписал на C # и развернул на Azure
Других решений пока нет …