Мое приложение получало ошибку переменной $ _GET, которая не существует в Windows 2008 R2 с 4 ядрами процессора.Ошибка php7 на многоядерном сервере Windows
Так что я создал этот простой код для тестирования.
<?php
if(!isset($_GET)){
error_log("_GET is not set");
echo "ERROR";
}else{
echo "OK";
}
И создал простой тест JMeter, чтобы назвать его 15 потоками, около 2500 об/мин.
Когда я запускаю его в одном основном процессоре, он работает для миллионов запросов без ошибок, но при запуске на сервере с 4 процессорами, после примерно 10 000 запросов переменная $ _GET больше не устанавливается.
Я также повторил тест с $ _POST, $ _SERVER, $ _COOKIE и $ _SESSION. И результат был тот же.
При понижении PHP до версии 5.6 он отлично работает (с 4-мя процессорами).
Когда вы устанавливаете близость процессора Apache к одному процессору, он также работает.
Я бегу: Apache/2.4.18 (Win64) с PHP/7.0.8. В VM с Windows 2008 R2 с 4 процессорами и 4 ГБ оперативной памяти, SSD, размещенный на Vultr.com.
Является ли эта проблема проблемой PHP 7?
Я использую версию 7.0.8 64-разрядную поточную безопасность, загруженную с [http://windows.php.net/download#php-7.0](http://windows.php.net/download# PHP-7.0). И apache из Apache Lounge. –