2010-09-05 4 views
0

На моей машине разработки мое приложение использовало около 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 

Означает ли это, что это неправильно настроено?

+0

могли бы вы проверить его на 32-битных Linux? – fazo

+0

@fazo Я создам виртуальную машину, когда я получу какое-то время, если у кого-то еще нет предложений. –

+0

Я постараюсь, чтобы машина разработки была намного ближе к производственной машине, чтобы иметь возможность отлаживать проблемы с помощью отладочной машины. Я предполагаю, что ваша проблема - 'eAccelerator'. Я использовал 'eAccelerator',' xcache' и 'APC', и в то время как' APC' может быть не самым быстрым, это, безусловно, самый стабильный. И стабильным я имею в виду, что «не segfault randomly» и «линейное использование ресурсов для рабочей нагрузки». Добавьте тот факт, что только 'APC' официально поддерживается исходным кодом php', выбор прост. Если вы можете повторить проблему с 'APC', только тогда потратите больше времени на изучение проблемы. –

ответ

0

Windows 7 32bit,

CentOS 5,5 64bit,

+0

Действительно ли это большая разница? Я имею в виду, 4-6 МБ -> 21 МБ более чем на 100% больше – Robus

+0

Я действительно интересовался тем же. Означает ли это, что я должен переключиться на 32-битную ОС для лучшей производительности, или я что-то упустил? –

+0

@Gray я так считаю. Но ваш вступительный вопрос мне непонятен. Вы имеете в виду только потребление памяти или тайминги? Почему бы вам не профилировать свое приложение? 1 секунда - дерьмо времени, я не могу сказать, что нет определенных узких мест. Во всяком случае, для чудовищных фреймворков и ORMS обязателен код opcode cacher, здесь: http://stackoverflow.com/questions/28716/ –

Смежные вопросы