У меня есть Drupal 7, apc с php-fpm и apache за лаком и 512 МБ ОЗУ.
Я измеряю время выполнения страницы с помощью модуля devel.
Время запроса к базе данных низкое (62 мс) по сравнению со временем выполнения страницы, которое составляет 854 мс. Это означает, что есть проблема с настройками PHP и APC.
Мои текущие настройки просто
apc.shm_size = 64
apc.stat=1
Как я могу улучшить?
Каковы наилучшие настройки для Drupal с учетом вышеуказанной конфигурации?
Благодарность
источник
Это один из тех, "как долго это кусок строк вопросов".
То, что хорошо для сайта с большим объемом, может не совпадать с сайтом с низким объемом с большим количеством модулей, и может не совпадать с сайтом среднего объема с включенным только несколькими модулями. Другие сайты, работающие на сервере, также могут загружаться в память, доступную APC.
Моя отправная точка
Затем я настраиваю настройки для сервера, но опять же, нет единого размера, подходящего для всего набора настроек.
Найдите apc.php (вероятно, находится по адресу /usr/share/pear/apc.php) и установите его в DOCROOT для вашей установки Drupal. Заблокируйте его на свой IP-адрес через конфигурацию Apache. Измените имя пользователя / пароль внутри, а затем перейдите к нему. Затем вы увидите свою статистику APC.
Переконфигурируйте параметр shm_size, чтобы минимизировать потери в кеше. В идеале вы хотите выделить ему достаточно памяти, чтобы никогда не пропускать кэш для файла, плюс некоторую дополнительную память для кэша пользователя APC.
Оптимизируйте TTL, чтобы предотвратить смещение кэша. Если вы не редактируете файлы, вы можете увеличить это число.
enable_cli удобен, когда вы часто используете drush, так что drush использует кэшированные файлы из APC.
rfc1867 удобен для загрузки файлов.
Я также заметил php-fpm в названии. Это усложняет ситуацию и действительно выходит за рамки Drupal. Вы можете получить лучшие ответы при сбое сервера , так как многие параметры конфигурации системы не относятся непосредственно к Drupal.
источник
APC просто улучшает загрузку и анализ файлов PHP. Большая часть также является временем выполнения. Есть много факторов, которые могут увеличить время выполнения, включая ошибки (особенно ошибки, связанные с кэшем), внутренние издержки (например, drupal_alter (), module_implements ()) и так далее.
Как вы спросили и уже предлагали mikeytown2, я бы использовал xhprof (я предпочитаю его вместо xdebug в наши дни, поскольку он обеспечивает прямой и быстрый доступ к результату и не требует дополнительных инструментов), чтобы выяснить, где находятся ваши узкие места.
Недавно я написал два сообщения в блоге об использовании xhprof в Drupal и типичных узких местах , которые могут вас заинтересовать.
источник