Master-X
Форум | Новости | Статьи
Главная » Форум » CJs » 
Тема: Мускуль вылетает временами
цитата
19/04/12 в 16:58
 Eddy
Народ, вот такая проблема, иногда в работе сайта вылетает такое дело :
Can't connect to local MySQL server through socket
поотом всё нормально, сам лично видел вылет 3 раза, причём из разных скриптов. Почитал в нете, это обычно если мускуль вырубается, но он пашет, просто временами такую хрень выбрасывает.

Что это тако и как лечить ? Может кто сталкивался.
цитата
19/04/12 в 17:32
 Woland
Лимиты коннектов может какие-то, или просто сервак не тянет и не успевает дать ответ за указанный в настройках таймаут или типа того.
цитата
19/04/12 в 17:38
 Eddy
А сколько коннектов должен иметь mysql для нормальной работы ?
цитата
19/04/12 в 17:42
 Stek

это от сервера зависит, от его параметров, загрузки, скриптов в конце концов.
Можно лимит и в миллион поставить, но просто мускуль со временем свалится в дикий своп и умрет.

Если дедикейт или впс, просить саппорт посмотреть возможность увеличить коннекшены. Если виртуал - то пробовать оптимизировать скрипты, что бы долго в базе не сидели.
цитата
19/04/12 в 17:49
 Eddy
дэдик у меня, нубилес и кристал, вместе мускуль жрут. Сейчас количество тумб на морде уменьшил и вроде лучше стало, было 180, сделал 80. А где можно количество мах. мускульных соединений глянуть, phpinfo покажет ?
цитата
19/04/12 в 18:11
 Woland
Сколько в нубилисе тумб вообще (не на морде, а в базе) ?
цитата
19/04/12 в 18:21
 Eddy
3500 примерно
цитата
19/04/12 в 18:43
 idk2045
пхп скрипты как правило выдают Too many connections если не хватает соединений.
а в твоем случае сервер уже упал по какой-то причине. возможно у тебя наоборот лимит соединений сильно высокий и сервак не справляется.
текущие опции можно посмотреть в mysql или phpmyadmin sql-командой show variables. там вроде max_connections это называется.
поменять можно в файле /etc/my.cnf

еще смотри лог мускуля /var/log/mysqld.log
цитата
19/04/12 в 18:43
 Stek
Eddy писал:
Сейчас количество тумб на морде уменьшил и вроде лучше стало, было 180, сделал 80


Число тумб вообще то не должно влиять на число соединений.

Может у тебя апач стоит и просто сжирается вся память, от чего мускуль свопит и соответственно медленно отрабатывает запросы в базе.
цитата
19/04/12 в 18:57
 Eddy
а сколько соединений должно быть, на сколько я понимаю, если посетитель заходит на страницу, то база получает несколько запросов одновременно, ин надо вписать, реф и т.д потом ещё таблицу для морды сделать.

При большом количестве посетителей всё это начинает тормозить, ктото ждет долго морду, ктото вооще нифига не получает. Я несколько раз получал ошибку, что база недоступна.

Сколько у меня активных, я посмотрю. А сколько надо, оптимально ?
цитата
19/04/12 в 19:01
 idk2045
Eddy писал:
А сколько надо, оптимально ?

как писали это зависит от сервака.
щас я смотрю у меня стоит например 150 и на серваке примерно 50к pageviews daily.
но еще раз говорю, смотри лог, возможно дело вовсе не в этом лимите.

еще можно посмотреть mysqladmin proc оно выдаст текущие запросы к БД, и сколько секунд каждый длится, возможно у тебя есть тяжелые запросы которые все тормозят.
цитата
19/04/12 в 19:53
 Emperor
Eddy: хватит гадать на кофейной гуще. запости содержимое /etc/my.cnf и запости результат скрипта mysqltuner.pl

дальше, сколько физически занимает база мускуля? от этого зависит размер кэша. там все таблицы myisam или есть innodb ?

# cd /var/lib/mysql/
# du -ch */*.MYI

ну и последнее - сколько озу на серваке? что там у тебя в апаче и нгинксе даже не спрашиваю icon_smile.gif
цитата
19/04/12 в 21:59
 Eddy
у меня вообще фиг знает что происходит, load average 200.1, сервер перегружаю 0.18, потом растет постепенно, уже 50.6 писец
цитата
19/04/12 в 22:08
 Emperor
Eddy писал:
load average 200.1


тут телепатов нет. сделай то что я написал выше или хотя бы засвети cat /etc/my.cnf
цитата
19/04/12 в 22:14
 Eddy
[mysqld]
max_connections = 256
skip-networking
skip-name-resolve
myisam-recover
character-set-server = utf8
collation-server = utf8_general_ci
key_buffer = 32M
query_cache_size= 32M
query_cache_type= 2

#skip-bdb
#skip-innodb

#ignore-builtin-innodb
#default-storage-engine=MyISAM


max_heap_table_size = 67108864

[mysql]
default-character-set=utf8
цитата
19/04/12 в 22:20
 idk2045
при LA 200 может мускуль вообще не при делах. он ляжет просто от перегруза сервера.
смотри че за процессы у тебя top показывает
если мускуль наверху то mysqladmin -uroot -p proc список запросов как я писал выше.
цитата
19/04/12 в 22:32
 Emperor
Eddy: вот тебе конфиг, замени у себя полностью секцию [mysqld]:

[mysqld]
skip-name-resolve
skip-networking
concurrent_insert=2
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
expire_logs_days=7
init_connect='SET NAMES utf8'
character_set_server=utf8
collation_server=utf8_general_ci
tmpdir = /tmp/
slow_query_log=1
slow_query_log_file=/var/log/mysqld.log
back_log=120
skip-external-locking
log-bin=mysql-bin
binlog-format=ROW
max_connections=100
thread_concurrency=4
thread_cache_size=256
query_cache_type=1
query_cache_limit=40M
query_cache_size=256M
query_prealloc_size=65536
query_alloc_block_size=131072
key_buffer_size=180M
myisam_sort_buffer_size=64M
sort_buffer_size=2M
join_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=512K
net_buffer_length=8K
table_open_cache=1024
table_definition_cache=1024
tmp_table_size=256M
max_heap_table_size=256M
max_allowed_packet=32M
thread_stack=128K
bulk_insert_buffer_size=8M
net_read_timeout=12
net_write_timeout=15
wait_timeout=28800
interactive_timeout=28800
long_query_time=4


только обнули лог файл перед рестартом:

# :>/var/log/mysqld.log

если это не мускуль, то надо включить в апаче server-status и смотреть процессы.
цитата
19/04/12 в 23:09
 Stek
Я бы не заменял конфиг, а попросил админов оттюнить. Конфиг мускуля для каждого сервера разный, зависит от кучи ситуаций. И что работает на одном сервере, может дико косячить на другом.
А дефолтный конфиг мускуля сам по себе весьма не плох.
цитата
19/04/12 в 23:10
 Eddy
это top, первое место у php

last pid: 10965; load averages: 12.29, 11.98, 9.18 up 0+00:26:22 20:03:09
129 processes: 13 running, 116 sleeping
CPU: 100% user, 0.0% nice, 0.0% system, 0.0% interrupt, 0.0% idle
Mem: 334M Active, 619M Inact, 278M Wired, 28K Cache, 212M Buf, 733M Free
Swap: 2048M Total, 2048M Free

PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
7127 user 1 106 0 111M 28516K RUN 2 6:57 46.39% php
6538 user 1 106 0 111M 28508K CPU2 2 9:03 44.58% php
7514 user 1 105 0 111M 28548K RUN 0 5:51 43.26% php
4358 user 1 105 0 111M 28784K RUN 1 10:57 42.38% php
7327 user 1 105 0 111M 28548K RUN 0 6:42 40.77% php
6909 user 1 105 0 111M 28508K CPU1 1 7:56 39.06% php
6721 user 1 104 0 111M 28512K CPU3 3 8:18 38.09% php
2220 user 1 104 0 111M 28508K RUN 1 11:43 37.50% php
5540 user 1 104 0 135M 52064K RUN 3 9:54 35.35% php
3219 user 1 103 0 111M 28780K RUN 3 11:28 32.67% php
1154 root 1 76 0 12148K 4468K getblk 1 0:08 0.00% sendmail
1069 smmsp 1 44 0 12148K 5052K select 1 0:03 0.00% sendmail
990 mysql 22 44 0 157M 90620K sbwait 0 0:01 0.00% mysqld
540 root 1 44 0 6920K 1540K select 0 0:00 0.00% syslogd
10389 www 1 44 0 131M 24532K select 1 0:00 0.00% httpd
10300 www 1 44 0 132M 25344K accept 1 0:00 0.00% httpd
цитата
19/04/12 в 23:29
 Emperor
Eddy писал:
это top, первое место у php


может ты все-таки включишь server-status ? или будем играть в экстрасенсов? trollface.png
цитата
20/04/12 в 00:19
 Eddy
Всем спасибо, теперь разъясню что это было.

Попросил человека сделать scj мультинишевый на этом-же сервере. У меня это вообще из головы вылетело. А он забил 10к галер и включил crop. Вот тут сервер со всеми мускулями и офигел, а я вместе с ним. Сервак стартуешь по новой и все нормально, пока crop не разгониться.

Нервный биз какойто блин.
цитата
20/04/12 в 00:28
 Woland
Скрипт года, хули ты хотел ... facepalm.gif


Эта страница в полной версии