FreeBSD 7.2 amd64 mysql deadlock

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Jungo
рядовой
Сообщения: 13
Зарегистрирован: 2008-08-24 18:01:24

FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Jungo » 2009-10-20 16:14:11

Добрый день. Ситуация такая.
Веб сервер стоит в паре с веб связь с бд по tcp 3306. На этом вебе данная конструкция.
Размер бд 1Gb.
Ram 32
винты нормальные
При 1000 обращений в секунду к бд база начинала отваливаться. Резко в какой то момент возрастало количество тредов до 900-1000 и бд уходила в дедлок. Скриптом не убивалась. Только через kill.

Бд ставилась вот так:

Код: Выделить всё

make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes
Пробовали и 5.1 ветку и 5.0 из портов, ситуация не менялась.
Wcpu процесса доходил до 600

Последние примерные параметры на моменты крэша.
my.cnf

Код: Выделить всё

[mysqld]
log=/var/log/mysql/mysql.log
#log-warnings=/var/log/mysql/mysql_warnings.log

skip-name-resolve
thread_concurrency = 8

default-character-set=utf8	
default-collation=utf8_general_ci
collation-server=utf8_general_ci
skip-character-set-client-handshake
default-storage-engine=INNODB
log-slow-queries = /var/log/mysql/slow.log
max_connections = 900
max_user_connections = 900
max_allowed_packet=128k
query-cache-type=1
query-cache-size=256M
table_cache=1024
flush_time = 120
innodb_buffer_pool_size = 4Gb
#innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 4
innodb_file_per_table
#innodb_flush_method=O_DIRECT

thread_cache_size = 28
join_buffer_size = 1024M
sort_buffer_size = 512M
key_buffer_size = 512M
wait_timeout = 10
max_write_lock_count = 0
read_rnd_buffer_size=512M

Данная опция как то странно работает
wait_timeout = 15 
Похожую проблему нашли на оффициальном форуме
http://forums.freebsd.org/showthread.ph ... l+deadlock

В данные момент стоит CentOS и вроде справляется.
Мысли какие то есть у кого?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Alex Keda » 2009-10-20 16:55:58

к диску обращения были?
Убей их всех! Бог потом рассортирует...

Jungo
рядовой
Сообщения: 13
Зарегистрирован: 2008-08-24 18:01:24

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Jungo » 2009-10-20 17:30:28

кроме бд на сервере только штатные пакеты
причем интересно вот что
якобы он висит запросы перестают обслуживаться
но при этом я мог иногда зайти в консоль
были и ошибки о нехватке памяти
после подстройке опций они ушли но падения продолжились
сервер обслуживал от 600 до 1000 соед в секунду минут 10, мог и час так работать а потом резко увеличивалось количество тредов и крах
посмотреть я там ничего уже не могу, ос мы заменили, у меня остались только конфиги

пока шляпа живет, что примечательно не так активно скачет счетчик соединений, держится на уровне 600 и плавно растет
даже растет медленнее чем на bsd

что интересно - обращения с сервера веб на бд

Код: Выделить всё

[root@localhost ~]# netstat -anl | grep 3306 | wc -l
    6527
[root@localhost ~]# 
а на сервере с бд уже другое

Код: Выделить всё

[root@localhost ~]# netstat -anl | grep 3306 | wc -l
301
[root@localhost ~]# 

Код: Выделить всё

Tasks: 219 total,   1 running, 218 sleeping,   0 stopped,   0 zombie
Cpu(s): 14.9%us, 19.7%sy,  0.0%ni, 61.7%id,  3.3%wa,  0.0%hi,  0.4%si,  0.0%st
Mem:  32959932k total,  2356296k used, 30603636k free,   201948k buffers
Swap: 12586888k total,        0k used, 12586888k free,  1639380k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                           
 6674 mysql     15   0 1639m 342m 5944 S 556.9  1.1   2016:26 mysqld     
Подсказали что netstat может считать по разному в разных ос - но как то слабо верится

по переменным mysql ничего подозрительного, есть конечно ляпы но немного

по запросам

Код: Выделить всё

select	14 M	812.48 k	37.30%
update	3,307 k	196.14 k	9.00%
change db2,185 k	129.62 k	5.95%
и еще очень важный момент
Open_tables 484 Количество открытых таблиц. лимит сейчас 1800

на бсд значение за 5 минут забивало свой предел в 1000
приходилось делать флуш открытых таблиц
загрузка на время спадала, но снова доходила до WCPU 300-600

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

а так итог всему подведу - чтото с тредами mysql

вполне возможно что и из-за --with-named-thread-libs=-pthread при конфигурировании mysql

Jungo
рядовой
Сообщения: 13
Зарегистрирован: 2008-08-24 18:01:24

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Jungo » 2009-10-20 21:54:53

проблема реальна
http://lists.freebsd.org/pipermail/free ... 09328.html
надо ее как то решать

а реально ли собрать с linuxthreads на amd64 ?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение paradox » 2009-10-20 21:58:17

Код: Выделить всё

uname -a

Jungo
рядовой
Сообщения: 13
Зарегистрирован: 2008-08-24 18:01:24

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Jungo » 2009-10-20 22:34:15

ось была такая

Код: Выделить всё

FreeBSD localhost.localdomain 7.2-RELEASE-p2 FreeBSD 7.2-RELEASE-p2 #0: Wed Jun 24 00:14:35 UTC 2009     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
вообще увидеть бы примеры конфигураций и параметры сборок и настроек ос для 1000-5000 соед. в сек. для БД, может хоть чтото станет понятно

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение paradox » 2009-10-20 22:38:41

мне не интересно какая была
я у вас спросил в какой щас версии вы пытаетесь фиксить проблемы

Jungo
рядовой
Сообщения: 13
Зарегистрирован: 2008-08-24 18:01:24

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Jungo » 2009-10-20 22:47:36

сейчас проблем нет, но на CentOS
Мне интересно выяснить почему они возникли на фре и как в будущем этого избежать.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение paradox » 2009-10-20 22:51:24

поскольку у вас уже нет фрибсд то невижу смысла в дискуссии
гадать на кофейной гуще когда дождь прошел о причинах пыли нет смысла - ведь так?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Alex Keda » 2009-10-21 8:31:11

http://www.freebsd.org/cgi/query-pr.cgi?pr=135673
там патч в конце.
попробуйте, если будет возможность.
если прокатит - отпишитесь в баг-репорт
Убей их всех! Бог потом рассортирует...

Jungo
рядовой
Сообщения: 13
Зарегистрирован: 2008-08-24 18:01:24

Re: FreeBSD 7.2 amd64 mysql deadlock

Непрочитанное сообщение Jungo » 2009-10-21 11:27:36

спасибо. вообще щас попробую воссоздать ситуацию в печочнице, должно прокатить