Разница в производительности на ноутбуке и сервере, как это исправить?

Я создал веб-приложение с Symfony 3.1 и PHP 7. На моем собственном компьютере он работает нормально, но на веб-сервере он работает очень медленно. Теперь я хочу знать почему. Не только для того, чтобы это веб-приложение работало быстрее, но и для того, чтобы лучше понять саму программу

Мой собственный компьютер имеет процессор Intel i7 и 8 ГБ оперативной памяти, работающие на Ubuntu 16.10. Сервер имеет два ядра, 4 ГБ оперативной памяти и работает на CentOS 6.

Мой ноутбук

Мой компьютер

Веб-сервер:

Мой веб-сервер

Они различаются как с точки зрения аппаратного, так и программного обеспечения, поэтому я не ожидаю, что они будут абсолютно одинаковыми, но я не понимаю, почему между ними существует огромная разница: инициализация Symfony в 13 раз быстрее, рендеринг Twig шаблоны в 25 раз быстрее.

Я использовал профилировщик Symfony и Blackfire.io, чтобы выяснить, почему мое приложение работает медленно, но это только объясняет производительность самого приложения. Поскольку страница на моем компьютере работает намного быстрее, я должен выяснить, почему приложение медленнее на моем веб-сервере.

я нашел этот блог как проверить производительность диска с помощью fio, Я обнаружил, что мой компьютер работает примерно в 20 раз лучше, чем сервер (19.9K / 6718 против 1056/375 iops). Это похоже на IOPS это горлышко бутылки.

Одно из решений очень простое: получить сервер с лучшей производительностью iops.

Но как мне узнать, как я могу улучшить свое приложение? Или, может быть, настройки моих веб-серверов? Я установил Opcache и, насколько я могу видеть (используя этот инструмент), работает нормально.

-2

Решение

1 — Проверьте, активирован ли opcache и правильно ли он настроен. Увеличить значение opcache.max_accelerated_files по максимуму, потому что Symfony загружает тонны файлов.

2 — Создайте более богатую карту классов для процесса автозагрузки, запустите эту команду: composer dump-autoload --optimize,

3 — Получить SSD-диск на вашем сервере. Вам не нужно много места, 128 ГБ достаточно для Symfony, и используйте обычный диск для своих ресурсов, если вам нужно много дополнительного места.

4 — Используйте кэш RAM, например Redis или Memcache. Например, я сократил на 200% время загрузки в Windows после того, как я установил Redis и правильно настроил Doctrine в моем config.yml файл

orm:
auto_generate_proxy_classes: "%kernel.debug%"auto_mapping: true
metadata_cache_driver:
type: service
id: doctrine.cache
query_cache_driver:
type: service
id: doctrine.cache
result_cache_driver:
type: service
id: doctrine.cache

И служебный файл:

  doctrine.cache:
class: Doctrine\Common\Cache\PredisCache
arguments: [ "@redis" ]

Если ничего не работает, получите другой сервер 🙂

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]