Меня немного смущает проблема, которая в последнее время стала более очевидной, и я надеюсь, что кто-то сможет указать мне направление, где я могу искать подходящие настройки, или если я столкнулся с другой проблемой. они встречались раньше.
У меня есть приложение Laravel и частный сервер, который я использую для нашего маленького музея. Теперь, когда приложение стало более сложным, отставание заметно, и вы можете видеть, как оно почти выстраивает соединения, завершая один запрос, прежде чем переходить к следующему, будь то API, ajax, просмотр ответов, что угодно.
Я использую Apache 2.4.29, а мой сервер Ubuntu — 18.04.1.
Я искал вокруг, но мало что помогло, что касается настроек соединений, если я посмотрю на свой phpinfo(), я увижу это Max Requests Per Child: 0 - Keep Alive: on - Max Per Connection: 100
, но я считаю, что они и так хороши.
Если я проверю свою память, я думаю, что у меня есть 65 ГБ доступной памяти, из которых 5 используются для кэширования. При просмотре оперативных данных память никогда не переходит на территорию ГБ и остается исключительно на территории МБ. Этот сервер используется только для этого проекта Laravel, поэтому мне не нужно беспокоиться о том, чтобы связываться с другими проектами, я просто хотел бы убедиться, что это приложение использует его наилучшим образом для своих целей.
Я был бы признателен за любые предложения, я знаю, что есть шанс, что термины, которые я ищу, неверны или, возможно, просто устарели, поэтому, если есть какие-либо потенциально полезные ресурсы, я также был бы признателен за них.
Большое спасибо!
Это действительно сложно сказать, так как не хватает многих деталей, но вот некоторые вещи, которые могут дать вам направление, где искать:
Попробуйте загрузить htop через apt-get и посмотрите, что происходит с нагрузкой на ваш ЦП/ОЗУ при каждом запросе к серверу.
Используете ли вы php-fpm для управления запросами php? Это может помочь выяснить, связана ли проблема с вашим PHP-кодом или с конфигурацией apache.
Пробовали развернуть на другой сервер? Вы все еще видите отставание на другом сервере? Если нет, это указывает на проблему с неправильной конфигурацией, а не на проблему с вашим кодом.
У вас есть другие процессы, которые работают в фоновом режиме и могут замедлить работу? Крон? Ларавель очередь?
Если вы попытаетесь установить другое приложение на сервер (скажем, phpmyadmin), оно тоже будет работать медленно или нормально?
Попробуйте взять отсюда. Удачи.
Небольшое обновление, и я буду обновлять на основе ваших цифр. 1) Добавил, и, как я думал, если у меня есть несколько человек из разных мест (просто на всякий случай), они пытаются получить доступ, а использование ЦП / ОЗУ редко (а если и редко) достигает 1% от общего использования. 2) Я не знаю, но это будет моей следующей задачей. 3) Позже на следующей неделе у меня появится новый сервер для другого проекта, но есть ли у вас какие-либо ресурсы, которые можно найти, чтобы найти неправильную конфигурацию, если она была? 4) На данный момент у меня есть один cron, который запускается каждую минуту, но редко что-то делает.
Продолжение... - на 4) ... просто чтобы убедиться, что вещи не накапливаются (например, временные файлы или изменения состояния). 5) Добавление phpmyadmin заставляет меня задаться вопросом, есть ли что-то, чего я не замечаю в самом Laravel, поскольку я могу загружать/перезагружать страницу PhpMyAdmin (наряду с другими, пытаясь заставить ее работать с несколькими подключениями) несколько раз, пока это занимает Laravel загружается несколько секунд.
Итак, если phpmyadmin работает нормально, это означает, что проблем с конфигурацией и сервером как таковым быть не может. Может быть, как вы предполагаете, вам чего-то не хватает в коде laravel?
Возможно, вы правы, поэтому я установил новый временный сервер и только что создал новую установку laravel, используя ту же базу данных. Используя отладочную панель Laravel, я увидел, что загрузка сократилась с 1,2 до 8,5 секунд в старом приложении до 3,1 миллисекунды в новом (и все еще с использованием той же базы данных). Я настроил страницу, на которой в основном загружается одна и та же информация в одном и том же HTML-шаблоне, а время загрузки сильно различается. Так что это должно быть что-то в старом проекте Laravel, что вызывает серьезные проблемы... к сожалению, я в растерянности по этому поводу.
Тем не менее, спасибо за вашу помощь, я приму ваш ответ исключительно для того, чтобы он успешно сузился до того, что это проблема Laravel сама по себе, а не проблема сервера или каких-либо других проблем с обработкой.
с таким объемом памяти, я думаю, вам нужно еще раз посмотреть на свой код