@mysql_ru

Страница 58 из 142
Alexey
14.08.2017
19:34:59
а, да. есть такая полезная утилита, называется perf

Fike
14.08.2017
19:35:00
просто perf

Alexey
14.08.2017
19:35:08
она из linux-tools пакета

Dmitriy
14.08.2017
19:35:25


Google
Alexey
14.08.2017
19:35:45
под рутом надо запускать

Dmitriy
14.08.2017
19:35:45
хотя я под рутом

Alexey
14.08.2017
19:37:00
первый раз такое вижу. но echo -1 > /proc/sys/kernel/perf_event_paranoid

Dmitriy
14.08.2017
19:37:38
Permission denied

[root@whm athlon]# echo -1 > /proc/sys/kernel/perf_event_paranoid bash: /proc/sys/kernel/perf_event_paranoid: Permission denied

Alexey
14.08.2017
19:38:15
а, виртуальная машина

Dmitriy
14.08.2017
19:38:21
да

openvz

centos 6

2.6 ядро

Alexey
14.08.2017
19:38:39
ну хорошо, а вот так:

yum install gdb curl -L https://www.percona.com/get/pt-pmp > /tmp/pt-pmp && chmod +x /tmp/pt-pmp /tmp/pt-pmp —iterations=3

Dmitriy
14.08.2017
19:45:44
два минуса нужно

Google
Dmitriy
14.08.2017
19:46:11
и вывод - пипец)

одни ошибки

Если интересно:

Unhandled dwarf expression opcode 0xf3 Unhandled dwarf expression opcode 0xf3 Unhandled dwarf expression opcode 0xf3 Unhandled dwarf expression opcode 0xf3 Unhandled dwarf expression opcode 0xf3

вот таких партянка

И такого много 87 pthread_cond_wait,inline_mysql_cond_wait(mysql_thread.h:1165),inline_mysql_cond_wait(mysql_thread.h:1165),cache_thread(mysql_thread.h:1165),one_thread_per_connection_end(mysql_thread.h:1165),do_handle_one_connection(sql_connect.cc:1368),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 30 libaio::??(libaio.so.1),os_aio_linux_collect(os0file.cc:5388),os_aio_linux_handle(os0file.cc:5388),fil_aio_wait(fil0fil.cc:6503),io_handler_thread(srv0start.cc:586),start_thread(libpthread.so.0),clone(libc.so.6) 9 poll(libc.so.6),vio_io_wait(viosocket.c:992),vio_socket_io_wait(viosocket.c:108),vio_read(viosocket.c:184),my_real_read(net_serv.cc:875),my_net_read_packet(net_serv.cc:1138),do_command(sql_parse.cc:983),do_handle_one_connection(sql_connect.cc:1349),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 3 sigwait(libpthread.so.0),signal_hand(mysqld.cc:3401),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),srv_master_sleep(srv0srv.cc:3117),srv_master_thread(srv0srv.cc:3117),start_thread(libpthread.so.0),clone(libc.so.6)

Вот еще график интересный



селектов стало в разы больше

Alexey
14.08.2017
20:00:11
так может нагрузка возросла? mysqld по большей части ничего не делает, если это верхняя часть портянки, а не нижняя

вот это что выдаёт? /tmp/pt-pmp --iterations=3 | head

Dmitriy
14.08.2017
20:02:44
[root@whm etc]# /tmp/pt-pmp —iterations=3 2>/dev/null | head Mon Aug 14 23:02:09 MSK 2017 81 pthread_cond_wait,inline_mysql_cond_wait(mysql_thread.h:1165),inline_mysql_cond_wait(mysql_thread.h:1165),cache_thread(mysql_thread.h:1165),one_thread_per_connection_end(mysql_thread.h:1165),do_handle_one_connection(sql_connect.cc:1368),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 30 libaio::??(libaio.so.1),os_aio_linux_collect(os0file.cc:5388),os_aio_linux_handle(os0file.cc:5388),fil_aio_wait(fil0fil.cc:6503),io_handler_thread(srv0start.cc:586),start_thread(libpthread.so.0),clone(libc.so.6) 11 poll(libc.so.6),vio_io_wait(viosocket.c:992),vio_socket_io_wait(viosocket.c:108),vio_read(viosocket.c:184),my_real_read(net_serv.cc:875),my_net_read_packet(net_serv.cc:1138),do_command(sql_parse.cc:983),do_handle_one_connection(sql_connect.cc:1349),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 3 sigwait(libpthread.so.0),signal_hand(mysqld.cc:3401),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),srv_master_sleep(srv0srv.cc:3117),srv_master_thread(srv0srv.cc:3117),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),page_cleaner_sleep_if_needed(buf0flu.cc:2668),page_cleaner_sleep_if_needed(buf0flu.cc:2668),buf_flush_page_cleaner_thread(buf0flu.cc:2668),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),page_cleaner_sleep_if_needed(buf0flu.cc:2668),page_cleaner_sleep_if_needed(buf0flu.cc:2668),buf_flush_lru_manager_thread(buf0flu.cc:2668),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),btr_defragment_thread(btr0defragment.cc:758),start_thread(libpthread.so.0),clone(libc.so.6) 3 pthread_cond_wait,os_cond_wait(os0sync.cc:196),os_event_wait_low(os0sync.cc:196),srv_resume_thread(srv0srv.cc:1088),srv_purge_coordinator_suspend(srv0srv.cc:1088),srv_purge_coordinator_thread(srv0srv.cc:1088),start_thread(libpthread.so.0),clone(libc.so.6) [root@whm etc]# /tmp/pt-pmp —iterations=3 2>/dev/null | head Mon Aug 14 23:02:26 MSK 2017 81 pthread_cond_wait,inline_mysql_cond_wait(mysql_thread.h:1165),inline_mysql_cond_wait(mysql_thread.h:1165),cache_thread(mysql_thread.h:1165),one_thread_per_connection_end(mysql_thread.h:1165),do_handle_one_connection(sql_connect.cc:1368),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 30 libaio::??(libaio.so.1),os_aio_linux_collect(os0file.cc:5388),os_aio_linux_handle(os0file.cc:5388),fil_aio_wait(fil0fil.cc:6503),io_handler_thread(srv0start.cc:586),start_thread(libpthread.so.0),clone(libc.so.6) 11 poll(libc.so.6),vio_io_wait(viosocket.c:992),vio_socket_io_wait(viosocket.c:108),vio_read(viosocket.c:184),my_real_read(net_serv.cc:875),my_net_read_packet(net_serv.cc:1138),do_command(sql_parse.cc:983),do_handle_one_connection(sql_connect.cc:1349),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 3 sigwait(libpthread.so.0),signal_hand(mysqld.cc:3401),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),srv_master_sleep(srv0srv.cc:3117),srv_master_thread(srv0srv.cc:3117),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),page_cleaner_sleep_if_needed(buf0flu.cc:2668),page_cleaner_sleep_if_needed(buf0flu.cc:2668),buf_flush_page_cleaner_thread(buf0flu.cc:2668),start_thread(libpthread.so.0),clone(libc.so.6) 3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),page_cleaner_sleep_if_needed(buf0flu.cc:2668),page_cleaner_sleep_if_needed(buf0flu.cc:2668),buf_flush_lru_manager_thread(buf0flu.cc:2668),start_thread(libpthread.so.0),clone(libc.so.6)

3 select(libc.so.6),os_thread_sleep(os0thread.cc:307),btr_defragment_thread(btr0defragment.cc:758),start_thread(libpthread.so.0),clone(libc.so.6) 3 pthread_cond_wait,os_cond_wait(os0sync.cc:196),os_event_wait_low(os0sync.cc:196),srv_resume_thread(srv0srv.cc:1088),srv_purge_coordinator_suspend(srv0srv.cc:1088),srv_purge_coordinator_thread(srv0srv.cc:1088),start_thread(libpthread.so.0),clone(libc.so.6)

Alexey
14.08.2017
20:07:15
этот mysqld вообще ничем не занят

а он там точно один? что pidof mysqld показывает?

Dmitriy
14.08.2017
20:12:57


# pidof mysqld 30553

Alexey
14.08.2017
20:17:50
а если —iterations=10 поставить?

Dmitriy
14.08.2017
20:24:52
# /tmp/pt-pmp —iterations=10 2>/dev/null | head Mon Aug 14 23:24:07 MSK 2017 282 pthread_cond_wait,inline_mysql_cond_wait(mysql_thread.h:1165),inline_mysql_cond_wait(mysql_thread.h:1165),cache_thread(mysql_thread.h:1165),one_thread_per_connection_end(mysql_thread.h:1165),do_handle_one_connection(sql_connect.cc:1368),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 100 libaio::??(libaio.so.1),os_aio_linux_collect(os0file.cc:5388),os_aio_linux_handle(os0file.cc:5388),fil_aio_wait(fil0fil.cc:6503),io_handler_thread(srv0start.cc:586),start_thread(libpthread.so.0),clone(libc.so.6) 26 poll(libc.so.6),vio_io_wait(viosocket.c:992),vio_socket_io_wait(viosocket.c:108),vio_read(viosocket.c:184),my_real_read(net_serv.cc:875),my_net_read_packet(net_serv.cc:1138),do_command(sql_parse.cc:983),do_handle_one_connection(sql_connect.cc:1349),handle_one_connection(sql_connect.cc:1261),start_thread(libpthread.so.0),clone(libc.so.6) 10 sigwait(libpthread.so.0),signal_hand(mysqld.cc:3401),start_thread(libpthread.so.0),clone(libc.so.6) 10 select(libc.so.6),os_thread_sleep(os0thread.cc:307),srv_master_sleep(srv0srv.cc:3117),srv_master_thread(srv0srv.cc:3117),start_thread(libpthread.so.0),clone(libc.so.6) 10 select(libc.so.6),os_thread_sleep(os0thread.cc:307),page_cleaner_sleep_if_needed(buf0flu.cc:2668),page_cleaner_sleep_if_needed(buf0flu.cc:2668),buf_flush_page_cleaner_thread(buf0flu.cc:2668),start_thread(libpthread.so.0),clone(libc.so.6) 10 select(libc.so.6),os_thread_sleep(os0thread.cc:307),btr_defragment_thread(btr0defragment.cc:758),start_thread(libpthread.so.0),clone(libc.so.6) 10 pthread_cond_wait,os_cond_wait(os0sync.cc:196),os_event_wait_low(os0sync.cc:196),srv_resume_thread(srv0srv.cc:1088),srv_purge_coordinator_suspend(srv0srv.cc:1088),srv_purge_coordinator_thread(srv0srv.cc:1088),start_thread(libpthread.so.0),clone(libc.so.6) 10 pthread_cond_wait,os_cond_wait(os0sync.cc:196),os_event_wait_low(os0sync.cc:196),buf_dump_thread(buf0dump.cc:701),start_thread(libpthread.so.0),clone(libc.so.6)

Alexey
14.08.2017
20:35:15
да что-то мистика какая-то. mysqld не занят ничем абсолютно. вангую какие-то причуды openvz

Google
Alexey
14.08.2017
20:35:48
а в show processlist что-нибудь есть?

Dmitriy
14.08.2017
20:37:18
там все по старому

есть там запромы, которые тупят, но не на столько же они тачку нагрузили

тем более что на 5.6 все было норм

Alexey
14.08.2017
20:42:47
но если верить графикам, 5.6 и запросов меньше обрабатывал. собственно, нагрузка cpu возросла пропорционально нагрузке на сервер, и я бы в эту сторону смотрел

Dmitriy
14.08.2017
20:47:31
возможно ли разная интерпритация вложенных запросов?

там есть запросы с несколькими вложенными запросами

по производительности, кстати стало даже хуже

Алексей, спасибо, буду изучать вопрос с этой стороны

Вариант очень интересный

lost
14.08.2017
21:46:56
https://mariadb.com/kb/en/mariadb/derived-table-merge-optimization/

сюда копай

при переходе с 5.6 на 5.7 столкнулись с похожей проблемой, потому что этот хинт отпимизатора по умолчанию включен

lost
15.08.2017
06:02:02
Да, там приводится как это сделать

Ivan
15.08.2017
12:34:39
Вы мне вот скажите, я могу менять wsrep_sst_method = xtrabackup -> rsync после того, как нода синкнулась?

Dmitriy
15.08.2017
12:35:26
mysql 8 уже использовали в продакшене ? вот думаю стоит ли преходить на 8 с 5.7

Ivan
15.08.2017
12:46:45
да
и для IST не нужны никакие state файлы от SST?

они я так понимаю разные для разных методов

Google
Alexey
15.08.2017
12:47:28
нет, IST и SST — совершенно разные, никак не пересекающиеся по данным процедуры

Ivan
15.08.2017
12:47:48
ок, спасибо

Alexey
15.08.2017
12:47:50
SST делается внешними утилитами. IST самой галерой с использованием gcache

mysql 8 уже использовали в продакшене ? вот думаю стоит ли преходить на 8 с 5.7
думаю, что ещё никто не использовал в продакшене, да и не стоит. а вот для новых разработок есть смысл пощупать

Dmitriy
15.08.2017
12:49:58
Да мне бы понять падает она или нет. На личном проекте хочу попробывать. упать на час там не критично. надо обновиться на этой недели. Оконные ф-ции стали нужны

Alexey
15.08.2017
12:51:37
Да мне бы понять падает она или нет. На личном проекте хочу попробывать. упать на час там не критично. надо обновиться на этой недели. Оконные ф-ции стали нужны
Перкона уже начала бомбить восьмёрку своими утилитами для тестирования. Судя по активности на bugs.mysql.com, накопали они немного, т.е. восьмёрка довольно стабильна

по личным, субъективным ощущениям, каждый релиз после 5.0 получается стабильнее предыдущего. 5.0 был полным кошмаром (но там долгая история). 5.1 просто кошмаром, 5.5 уже похож на релиз, 5.6 и особенно 5.7 — очень ok. судя по всему, 8.0 продолжит тренд

Аггей
15.08.2017
13:03:15
Станет кошмаром?

Ivan
15.08.2017
13:37:17
А что, mariadb не комильфо, у всех mysql?

Alexey
15.08.2017
14:55:28
ну, не у всех конечно. но думаю, у большинства mysql/percona

Nikolay
15.08.2017
15:52:23
https://www.youtube.com/watch?v=eDh9x5PuhxQ https://www.youtube.com/watch?v=Y86Vz00XIOs

Moscow MySQL User Group Meetup 11 июля

Maxim
16.08.2017
08:28:06
Как сделать запрос в две таблицы, где колонки с одинаковыми именами и вывести в одну колонку результат?

UNION заюзал

Magic
16.08.2017
09:38:09


Беру средние значения по первым опросам, точно так же по последним. Условно говоря нужны по вторым, по третьим и тд..

мой запрос на выборку среднего значения по одному столбцу по первым опросам - SELECT (AVG(energy)) as 'value', 'Энергия' as metric, UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY) as time_sec FROM first_survey t1 INNER JOIN ( SELECT MIN(time) maxdate, user_id FROM first_survey GROUP BY user_id ) t2 ON t1.user_id = t2.user_id AND t1.time = t2.maxdate

точно так же делаю по последним, только меняю MIN на MAX а вот можно ли по вторым и по третьим посчитать - я хз как

lost
16.08.2017
12:18:50
добавь колонку с порядковым номером теста для каждого юзера, например

Google
lost
16.08.2017
12:19:03
и потом считай среднее с группировкой по порядковому номеру

Ivan
16.08.2017
12:57:56
Кто знает, как добраться до переменных из раздела [sst] из рантайма и можно ли их менять вообще?

Alexey
16.08.2017
13:06:54
из рантайма, в смысле из сервера? никак, потому что сервер секцию [sst] вообще не читает и ничего про неё не знает. это для внешних утилит, которые читают секцию при запуске

Ivan
16.08.2017
13:14:01
то есть если я на доноре изменю эту секцию перед подключением receiver, то с большой долей вероятности новые настройки подхватятся во время подключения?

Magic
16.08.2017
13:15:53
добавь колонку с порядковым номером теста для каждого юзера, например
я кажется нашел решение, под меня переделать только https://stackoverflow.com/questions/14661232/select-2nd-row-of-every-id-in-mysql

Ivan
16.08.2017
13:16:36
Это надо потестить, интересно

спасибо!

Magic
16.08.2017
13:33:22
lost
16.08.2017
13:49:05
задача: определить средние показатели в разрезе всех юзеров для каждого теста: для 1 теста для 2 теста и так далее вопрос: как определелить какой тест у каждого юзера 1 какой 2 и так далее

Magic
16.08.2017
13:50:30
задача: определить средние показатели в разрезе всех юзеров для каждого теста: для 1 теста для 2 теста и так далее вопрос: как определелить какой тест у каждого юзера 1 какой 2 и так далее
тут только подсчетом каким-то просто изначально не предполагалось что их будет больше 1 потом не предполагалось считать средние опросы теперь попросили сделать.......

lost
16.08.2017
13:51:56
ну так не все потеряно

чуть-чуть изменить структуру таблицы, пробежаться в цикле по юзерам, обновить порядок и написать 1 запрос без костылей

Magic
16.08.2017
13:53:45
чуть-чуть изменить структуру таблицы, пробежаться в цикле по юзерам, обновить порядок и написать 1 запрос без костылей
цикле mysql? просто пронумеровать каждому номер его опроса - тоже хз как сделать, чисто mysql средствами

lost
16.08.2017
13:54:04
сессионными переменными

Magic
16.08.2017
13:54:24
так и гуглить?

lost
16.08.2017
13:54:48
так и гуглить

Magic
16.08.2017
13:54:57
Спасибо, поищу

Arslanali
17.08.2017
07:18:03
Привет. Такой вопрос ребята. Хотел бы аучиться делать такой поиск по базе(PHP + MySQL) В обном поле БД фамилия абонента - "Соловьев Михаил Дмитриевич". Делаю стандартный поиск like select * from users where name like %$user%; Поиск выдает Михаила когда ищу так: "Михаил" или "Соловьев", но не отрабатывает когда напишу "Михаил Соловьев". Как-то разбить по пробелам или какой-то есть другой способ реализовать такой поиск?

или как называется такой поиск, чтобы погуглить его примеры?

Страница 58 из 142