На моей машине разработки мое приложение использовало около 4-6 МБ памяти для каждого запроса. После переключения на производственную машину эти номера достигли 21 + МБ за запрос без какого-либо улучшения скорости (0,30 - 1,2 секунды, что я действительно надеялся улучшить на своей производственной машине). Некоторые части приложения (например, загрузка базы данных) использовали 271 КБ на машине разработки и 2,5 МБ на одном из них, поэтому мне интересно, что может быть причиной этого. Мое приложение использует Zend Framework 1.10.8 (MVC) и Doctrine 2.0beta4 ORM и PDO_MySQL в качестве адаптера базы данных.Деградированная производительность на производственной машине
Моя машина развития: Windows 7 32bit, 1.8GHz Dual Core, 2GB RAM, PHP 5.3.2, Apache 2.2.15, MySQLnd 5.0.7-DEV (Zend CE Server)
Моя машина производства: CentOS 5.5 64bit, 2.66GHz Quad Core, оперативная память 8 ГБ, PHP 5.3.3, Apache 2.2.16, MySQL 5.1.48
Кроме того, я действительно не мог найти узкое место, это похоже на прикладную , Скажите, пожалуйста, если я должен предоставить дополнительную информацию.
Update:
Zend Server, который я использую на моем Dev машины, имеет Zend Optimizer + и APC включен, и мой сисадмин рекомендовал мне, что я должен использовать Eaccelerator, поэтому я последовал его совету. Однако на phpinfo() я вижу следующее:
eAccelerator 0.9.6.1
Caching Enabled true
Optimizer Enabled true
Check mtime Enabled true
Memory Size 16,777,144 Bytes
Memory Available 16,772,976 Bytes
Memory Allocated 4,168 Bytes
Cached Scripts 0
Removed Scripts 0
Означает ли это, что это неправильно настроено?
могли бы вы проверить его на 32-битных Linux? – fazo
@fazo Я создам виртуальную машину, когда я получу какое-то время, если у кого-то еще нет предложений. –
Я постараюсь, чтобы машина разработки была намного ближе к производственной машине, чтобы иметь возможность отлаживать проблемы с помощью отладочной машины. Я предполагаю, что ваша проблема - 'eAccelerator'. Я использовал 'eAccelerator',' xcache' и 'APC', и в то время как' APC' может быть не самым быстрым, это, безусловно, самый стабильный. И стабильным я имею в виду, что «не segfault randomly» и «линейное использование ресурсов для рабочей нагрузки». Добавьте тот факт, что только 'APC' официально поддерживается исходным кодом php', выбор прост. Если вы можете повторить проблему с 'APC', только тогда потратите больше времени на изучение проблемы. –