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

  • +1

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

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

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

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

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

    • +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
        superstor@bk.ru superstor@bk.ru 29 октября 2019 15:50 #

        Добрый день!

        Как с помощью Яндекс.Метрики вычислить кривой плагин, который дает ошибку 1203?

        Спасибо

      • +1
        Парам Пам Пам Парам Пам Пам 3 декабря 2020 20:53 #

        там случайно проблема массовой еще не стала?)

        может пришло то время когда уже пора увеличить для облака этот параметр?

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

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