palach Опубликовано 23 Ноября 2005 Жалоба Поделиться Опубликовано 23 Ноября 2005 Начну с того, что в поиске порылся хорошенько.Немного вводных.Сайт жил на хостинге, потреблял прилично ресурсов и, как многим, нам предложили переехать на выделенный сервер.Мы арендовали сервер, перенесли сайт.Характеристики сервера достаточные, по моему мнению для сайта с посещаемсотью около 9000 человек в сутки.После переезда часто стала повляться ошибка "Too many connections".Я обратился к хостеру, мне написали, что лимит - 270 соединений, а использовано - порядка сорока.Саппорт сказал, что дело в скрипте.Я проконсультировался у знающих ipb, сказали - снова к саппорту.Вот одна из переписок с саппортом: " "> Здравствуйте, saupport! > Снова ошибка: > mySQL error: Too many connections > mySQL error code: > Date: Wednesday 16th of November 2005 10:28:24 PM > Уже не знаю, что с этим делать. > До какого количества можно увеличить кол-во соединений без каких-либо > негативных последствий? увеличением лимита проблему не решить.в норме используется порядка 15-20 коннектов одновременнолимит стоит 270. теперь прикинем, если кто-то или что-то "седает" 250 коннектов за 10 минутдопустим, сколько ему понадобится времени, чтобы занять 1000 коннектов?как сами думаете - эта маленькая отсрочка решит проблему? у нас два сервера хостинга с сотнями сайтов используют в пике 200-250коннектов, не больше.а тут один сайт и один скрипт. Вот саппорт предположил причину: > судя по тому, что я сейчас наблюдаю, проблема в запросах вида:>> UPDATE LOW_PRIORITY ibf_members SET login_anonymous='0&1',> last_activity=1132200823 WHERE id=7003.>> почему то они приводят к блокировке таблицы, соответственно скапливается> огромное число соеденений, ожидающих окончания блокировки.>> вот с этим надо что то делать, иначе никакое увеличение лимитов не> поможет."> надо подумать, это нормально - такое количество анонимных соеденений? еще возникает вопрос - вот выдержка из документации на mysql: If you use the LOW_PRIORITY keyword, execution of the UPDATE is delayeduntil no other clients are reading from the table. если чтение из таблицы происходит очень часто, допустим при любомобращении клиента к сайту - то скрипт ведь может и недождаться такогомомента, так ли необходима опция LOW_PRIORITY ? пока я сделал вот что - сильно уменьшил время таймаута по соеденениют.е. такие зависшие соеденения по идее будут просто быстро отваливатьсяможет чем то поможет." Ошибка все ровно появляется. Что посоветуют знатоки данного форума? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Valera Опубликовано 23 Ноября 2005 Жалоба Поделиться Опубликовано 23 Ноября 2005 =======Мы арендовали сервер, перенесли сайт.=======Конфиг. сервера не написали. В вашем случае достаточно гостям запретить просмотр форума, как проблемы временно исчезнут. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Septerrianin Опубликовано 24 Ноября 2005 Жалоба Поделиться Опубликовано 24 Ноября 2005 =======Мы арендовали сервер, перенесли сайт.=======Конфиг. сервера не написали. В вашем случае достаточно гостям запретить просмотр форума, как проблемы временно исчезнут.не хочу спорить со специалистом, но насколько я помню, запреты в админке никак не влияют на обращение гостей к базе форума.Запросы всё равно происходят, или я ошибаюсь? А вот ЛоуПриорити при запросах к самой часто используемой таблице - маразм. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Valera Опубликовано 24 Ноября 2005 Жалоба Поделиться Опубликовано 24 Ноября 2005 -------Запросы всё равно происходят, или я ошибаюсь?-------Число запросов резко снизится. (так как для гостей не будет обращений к базе для вывода форума, топиков, постов) -------не хочу спорить-------Спорить, конечно не надо, достаточно лишь проверить. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Septerrianin Опубликовано 25 Ноября 2005 Жалоба Поделиться Опубликовано 25 Ноября 2005 Число запросов резко снизится. (так как для гостей не будет обращений к базе для вывода форума, топиков, постов)Точно. Об этом не подумал Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 palach Опубликовано 25 Ноября 2005 Автор Жалоба Поделиться Опубликовано 25 Ноября 2005 Valera, спасибо за совет, но данный метод неприемлем, так как гости - делает посещаемость ресурсу и со временем становятся его пользователями.Есть ли еще какие-либо методы? " вот ЛоуПриорити при запросах к самой часто используемой таблице - маразм." - объясните, пожалуйста, что это значит?Может это поможет решить проблему? Благодарен авторам выше за оперативный ответ. Вот конфигурация сервера:"1U, Pentium4 2.8GHz, 2Gb оперативной памяти , 2х 160Gb SATA HDD" Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Valera Опубликовано 25 Ноября 2005 Жалоба Поделиться Опубликовано 25 Ноября 2005 сервер довольно мощный.http://www.linuxshop.ru/lib/mysqloff/Table_locking.htmlнадо спрашивать у Songа, я лично не представляю что будет если вместо лоу_приоритет поставть HIGH_PRIORITY. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 palach Опубликовано 28 Ноября 2005 Автор Жалоба Поделиться Опубликовано 28 Ноября 2005 Valera, спасибо, спрошу. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 dfc_darkman Опубликовано 28 Ноября 2005 Жалоба Поделиться Опубликовано 28 Ноября 2005 У меня тоже такое иногда бывает. Но это из-за загрузки самого сервера хостера. Напихали блин клиентов Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 профф Опубликовано 29 Ноября 2005 Жалоба Поделиться Опубликовано 29 Ноября 2005 (изменено) попробуй просто убрать LOW_PRIORITY, скорость скриптов будет чуть меньше, зато не будет "зависших запросов" Изменено 29 Ноября 2005 пользователем профф Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 palach Опубликовано 29 Ноября 2005 Автор Жалоба Поделиться Опубликовано 29 Ноября 2005 "скорость скриптов будет чуть меньше"Это будет не сильно заметно для пользователей? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 профф Опубликовано 30 Ноября 2005 Жалоба Поделиться Опубликовано 30 Ноября 2005 (изменено) не знаю, смотря как много таких запросов получается Изменено 30 Ноября 2005 пользователем профф Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
palach
Начну с того, что в поиске порылся хорошенько.
Немного вводных.
Сайт жил на хостинге, потреблял прилично ресурсов и, как многим, нам предложили переехать на выделенный сервер.
Мы арендовали сервер, перенесли сайт.
Характеристики сервера достаточные, по моему мнению для сайта с посещаемсотью около 9000 человек в сутки.
После переезда часто стала повляться ошибка "Too many connections".
Я обратился к хостеру, мне написали, что лимит - 270 соединений, а использовано - порядка сорока.
Саппорт сказал, что дело в скрипте.
Я проконсультировался у знающих ipb, сказали - снова к саппорту.
Вот одна из переписок с саппортом:
" "> Здравствуйте, saupport!
> Снова ошибка:
> mySQL error: Too many connections
> mySQL error code:
> Date: Wednesday 16th of November 2005 10:28:24 PM
> Уже не знаю, что с этим делать.
> До какого количества можно увеличить кол-во соединений без каких-либо
> негативных последствий?
увеличением лимита проблему не решить.
в норме используется порядка 15-20 коннектов одновременно
лимит стоит 270.
теперь прикинем, если кто-то или что-то "седает" 250 коннектов за 10 минут
допустим, сколько ему понадобится времени, чтобы занять 1000 коннектов?
как сами думаете - эта маленькая отсрочка решит проблему?
у нас два сервера хостинга с сотнями сайтов используют в пике 200-250
коннектов, не больше.
а тут один сайт и один скрипт.
Вот саппорт предположил причину:
> судя по тому, что я сейчас наблюдаю, проблема в запросах вида:
>
> UPDATE LOW_PRIORITY ibf_members SET login_anonymous='0&1',
> last_activity=1132200823 WHERE id=7003.
>
> почему то они приводят к блокировке таблицы, соответственно скапливается
> огромное число соеденений, ожидающих окончания блокировки.
>
> вот с этим надо что то делать, иначе никакое увеличение лимитов не
> поможет."
>
надо подумать, это нормально - такое количество анонимных соеденений?
еще возникает вопрос - вот выдержка из документации на mysql:
If you use the LOW_PRIORITY keyword, execution of the UPDATE is delayed
until no other clients are reading from the table.
если чтение из таблицы происходит очень часто, допустим при любом
обращении клиента к сайту - то скрипт ведь может и недождаться такого
момента, так ли необходима опция LOW_PRIORITY ?
пока я сделал вот что - сильно уменьшил время таймаута по соеденению
т.е. такие зависшие соеденения по идее будут просто быстро отваливаться
может чем то поможет."
Ошибка все ровно появляется.
Что посоветуют знатоки данного форума?
Ссылка на комментарий
Поделиться на других сайтах
11 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.