Я знаю, что этот вопрос может быть слишком общим, но я в отчаянии.
Отметить: Здесь я тестирую php с помощью CLI, но такая же разница наблюдается и с Apache + PHP. Но чтобы избежать кеширования Apache и прочего, я использовал для тестирования только php cli.
У меня два выделенных сервера виртуальных машин.
Первый работает под управлением 4 ГБ памяти 32-битного Centos 6.8 PHP 5.3.3
Второй свежая установка 8 ГБ памяти 64 бит Centos 7.5 PHP 5.4.16
У меня есть тестовый скрипт, написанный на PHP, который выполняет некоторые базовые операции (ничего, связанного с базами данных или другими службами, только базовые операции, такие как вычисления и т. Д.)
Я также протестировал эти два сервера, загрузив Codeigniter и запустив его на обоих. Если вы знаете, что по умолчанию страница приветствия codeigniter показывает, сколько времени потребовалось для создания экрана приветствия.
Команда, которую я запускаю для тестирования скриптов, исходит от клиента SSH и просто
[root@domain]php /path/to/my/script.php
Проблема в том, что старый сервер всегда (мой скрипт, страница приветствия codeigniter, в любом скрипте) работает на 60-70 процентов быстрее, чем новый сервер.
Я даже дважды установил второй сервер, чтобы убедиться, что я не напортачил, но результаты такие же. Новый сервер на 60-70 процентов медленнее.
В чем может быть проблема?
Кажется, проблема в APC. На старом сервере работает APC, а на новом сервере - APCu. В то время как APC старого сервера кэширует файлы, APCu нового сервера, похоже, работает, но независимо от того, что я сделал в конфигурации, он не кэширует файлы. Я отключаю APCu в конфиге и apc.php
Панель мониторинга говорит, что APC не включен, что является доказательством того, что файл конфигурации в порядке, но когда я включаю APCu, он, кажется, работает, но никогда не кэширует файлы. Файл конфигурации APCu используется по умолчанию, но не кэшируется. Я удалил и переустановил php-pecl-apcu с помощью yum, но все еще не кэшировал. Текущая версия 4.0.11-1.el7