Проблема с max_user_connections

Главные вкладки

Аватар пользователя sashken sashken 3 февраля 2009 в 21:05

Здравствуйте,

Последнее время очень часто вижу у себя на сайте такое:

Site off-line

The site is currently not available due to technical problems. Please try again later. Thank you for your understanding.

If you are the maintainer of this site, please check your database settings in the settings.php file and ensure that your hosting provider's database server is running. For more help, see the handbook, or contact your hosting provider.

The mysql error was: User quqiru already has more than 'max_user_connections' active connections.

Т.е. все подключения к БД использованы. Хостинг Ruweb. Количество одновременных подключений 50.

Хостер говорит: Вероятно, необходима какая-то оптимизация - движка либо базы. Вот что у Вас висело в запросах mysqld:

| 60555121 | quqiru | localhost | quqiru | Query | 2256 | statistics | SELECT COUNT(n.nid) FROM node n INNER JOIN term_node tn0 ON n.nid = tn0.nid INNER JOIN term_node tn1 |
| 60558209 | quqiru | localhost | quqiru | Query | 2175 | statistics | SELECT COUNT(n.nid) FROM node n INNER JOIN term_node tn0 ON n.nid = tn0.nid INNER JOIN term_node tn1 |
| 60596484 | quqiru | localhost | quqiru | Query | 989 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60596485 | quqiru | localhost | quqiru | Query | 989 | Locked | UPDATE node SET vid = 71, type = 'pozdravlenie', language = '', title = 'оНГДПЮБКЕМХЕ Я |
| 60596547 | quqiru | localhost | quqiru | Query | 988 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60596883 | quqiru | localhost | quqiru | Query | 979 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60597234 | quqiru | localhost | quqiru | Query | 972 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60597536 | quqiru | localhost | quqiru | Query | 962 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60597651 | quqiru | localhost | quqiru | Query | 958 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60597745 | quqiru | localhost | quqiru | Query | 954 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60597978 | quqiru | localhost | quqiru | Query | 944 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60598299 | quqiru | localhost | quqiru | Query | 936 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60598530 | quqiru | localhost | quqiru | Query | 927 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60598730 | quqiru | localhost | quqiru | Query | 922 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60599046 | quqiru | localhost | quqiru | Query | 913 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60599190 | quqiru | localhost | quqiru | Query | 910 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60599358 | quqiru | localhost | quqiru | Query | 906 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60599422 | quqiru | localhost | quqiru | Query | 905 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60599613 | quqiru | localhost | quqiru | Query | 897 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60599806 | quqiru | localhost | quqiru | Query | 890 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60600061 | quqiru | localhost | quqiru | Query | 884 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60600112 | quqiru | localhost | quqiru | Query | 883 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60600276 | quqiru | localhost | quqiru | Query | 879 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60600592 | quqiru | localhost | quqiru | Query | 870 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60600859 | quqiru | localhost | quqiru | Query | 862 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601288 | quqiru | localhost | quqiru | Query | 852 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601406 | quqiru | localhost | quqiru | Query | 850 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601503 | quqiru | localhost | quqiru | Query | 847 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601628 | quqiru | localhost | quqiru | Query | 843 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601739 | quqiru | localhost | quqiru | Query | 838 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601860 | quqiru | localhost | quqiru | Query | 836 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60601882 | quqiru | localhost | quqiru | Query | 835 | Locked | SELECT node.nid AS nid,
| 60602231 | quqiru | localhost | quqiru | Query | 825 | Locked | SELECT n.nid, n.title, u.uid, u.name FROM node n INNER JOIN node_counter s ON n.nid = s.nid INNER JO |
| 60602300 | quqiru | localhost | quqiru | Query | 824 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60602378 | quqiru | localhost | quqiru | Query | 822 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60602531 | quqiru | localhost | quqiru | Query | 816 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60602714 | quqiru | localhost | quqiru | Query | 807 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60602809 | quqiru | localhost | quqiru | Query | 804 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60602862 | quqiru | localhost | quqiru | Query | 802 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60602909 | quqiru | localhost | quqiru | Query | 800 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60603071 | quqiru | localhost | quqiru | Query | 794 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60603111 | quqiru | localhost | quqiru | Query | 792 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60603509 | quqiru | localhost | quqiru | Query | 783 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60603584 | quqiru | localhost | quqiru | Query | 781 | Locked | OPTIMIZE TABLE `access`, `accesslog`, `actions`, `actions_aid`, `advanced_help_index`, `aggregator_c |
| 60603757 | quqiru | localhost | quqiru | Query | 774 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60604181 | quqiru | localhost | quqiru | Query | 763 | Locked | SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment, n.promote, n.mod |
| 60604253 | quqiru | localhost | quqiru | Query | 761 | Locked | SELECT COUNT(*) FROM (SELECT node.nid AS nid
| 60604543 | quqiru | localhost | quqiru | Query | 752 | Locked | SELECT COUNT(DISTINCT(n.nid)) FROM node n INNER JOIN term_node tn ON n.vid = tn.vid WHERE tn.tid IN |
| 60604835 | quqiru | localhost | quqiru | Query | 741 | Locked | SELECT t.tid, COUNT(n.nid) AS c FROM term_node t INNER JOIN node n ON t.vid = n.vid WHERE n.status = |
| 60605054 | quqiru | localhost | quqiru | Query | 735 | Locked | SELECT t.tid, COUNT(n.nid) AS c FROM term_node t INNER JOIN node n ON t.vid = n.vid WHERE n.status = |

Подскажите что можно сделать? Здесь http://forum.drupal.ru/node/4639 вычитал что Друпал открывает по одному соединению на загрузку каждой страницы, а после загрузки страницы закрывает соединение. Т.е. если я правильно понял в единицу времени может быть загружено одновременно 50 страниц (Ruweb). А 51-я уже вызовет ошибку? И еще: если страница не загрузилась до конца, Друпал не закрывает соединение с БД?

Комментарии

Аватар пользователя sashken sashken 5 февраля 2009 в 11:20

делал запрос хостеру, об увеличении кол-ва подключений, вот ответ:

увеличить количество подключений не можем.
лучше Вам все-таки разобраться, где там у Вас не закрывается подключение к MySQL.

Подскажите, где поискать незакрытые подключения.

Аватар пользователя sashken sashken 6 февраля 2009 в 18:39

Может хоть кто-нить подскажет по запуску крона закрываются незакрытые подключения или нет? а то может просто крон почаще запускать:) сейчас запускается каждый час

Аватар пользователя gor gor 7 февраля 2009 в 17:44

max_user_connections - это описание н значение данной переменной.

Для вас пару вопросов:
- какая посешаемость на вашем сайте
- на сколько он тяжел (список установленых модулей)
- если можете добыть, то предоставте loadavg с сервера (показывается командами w,uptime), когда у вас возникает проблема с подключениями.

Предварительный вывод: скореее всего сервер в моменты загрузки (общей не только вашим сайтом) не успевает обрабатывать запросы пользователей (это покажет loadavg когда вы его предоставите), и запросы от вашего сайта выстраиваются в очередь. точнее первые 50.

Тоесть я подозреваю что если и есть вина ваша, то только частичная, в добавлении нагрузки серверу не очень легким друпалом (это узнаем из перечня мдулей на вашем сайте и посешаемости сайта)