5 комментариев

  • +2
    Михаил Ушенин Михаил Ушенин Webasyst 17 ноября 2017 11:53 #

    Это значит, что одновременно выполняется много SQL-запросов к одной базе данных. В нормальных условиях запросы выполняются очень быстро (доли секунды) и накладываются друг на друга крайне редко. Такое одновременное наложение друг на друга большого количества запросов по времени может происходить в следующих ситуациях:

    1. У вас ОЧЕНЬ высокая посещаемость сайта, и при открытии страниц SQL-запросы выполняются ОЧЕНЬ часто.
    2. При открытии страниц выполняются медленные SQL-запросы. Если даже небольшое количество пользователей более-менее одновременно откроют страницу (или выполнят другое действие на сайте — например, запустят поиск), которые используют такие медленные запросы, то они легко наложатся друг на друга. Медленные запросы обычно свидетельствуют о неоптимально написанном программном коде приложения или плагина, которые используются на страницах сайта. Если есть информация, на каких страницах у вас чаще всего возникает такая ошибка и какие действия пользователи выполняют перед возникновением ошибки, то это может помочь выяснить, используется ли какой-то плагин на таких страницах. Такую информацию можно попробовать получить из логов веб-сервера и сервисов наподобие "Гугл-аналитики" и "Яндекс.Метрики".

      Медленные SQL-запросы могут выполняться и без установки плагинов. Например, если у вас ОЧЕНЬ большой каталог товаров и настроены фильтры в категориях, то одновременное применение фильтров большим количеством пользователей может привести к тому, что сразу будет выполнено большое количество медленных SQL-запросов, которые требует больше времени, чем обычно, чтобы получить информацию из базы данных. Такая ситуация может возникнуть, например, если вы рекламируете ссылки на заранее подготовленные результаты фильтрации товаров в категориях по каким-то параметрам (характеристикам), и по этим ссылкам из ваших рекламных объявлений более-менее одновременно переходит сразу большое количество посетителей.

      Другая ситуация, когда это бывает возможно: если у вас в теме дизайна используются нестандартные размеры изображений товаров и включено формирование эскизов изображений "на лету". При одновременном первом открытии разных страниц витрины формируется большое количество новых нестандартных эскизов. Для получения информации о каждом эскизе PHP-скрипт обращается к базе данных. Если на странице, скажем, 30 новых изображений, которые нужно сформировать "на лету", и таких страниц много, и все они открываются большим количеством посетителей в сравнительно сжатый период времени (что довольно маловероятно, но теоретически возможно), то начинают выполняться сразу много SQL-запросов с той же самой ошибкой "слишком много подключений".
    • +2
      Михаил Ушенин Михаил Ушенин Webasyst 17 ноября 2017 11:55 #

      Как от этого избавиться: увеличить значение параметра max_user_connections в конфигурации MySQL на хостинге. В облаке персонально для вас вряд ли этот параметр будет увеличен, если только эта проблема не будет признана массовой. Поэтому сначала понаблюдайте, насколько часто и на каких страницах возникает ошибка. На основании этой информации можно будет решать, какие меры стоит предпринимать.

    • +1

      Слишком много подключений....

      • +1
        Gaddget Gaddget 7 апреля 2017 16:50 #

        Спасибо большое

      • +1
        Dmitrii L Dmitrii L 17 ноября 2017 10:48 #

        Что предпринять, чтобы не появлялось такое оповещение? (много подключений - как это понять? много пользователей на сайте, или что-то другое)

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите