Mariadb и одно ядро

1 23
W1
На сайте с 22.01.2021
Offline
283
#21
htexture #:
Лежит, потому-что не может получить ответ от базы.

Возможно, мы не поняли друг друга. Попробую переформулировать. Вот допустим, Вы сейчас сделали запрос к сайту. Понятное дело, что с Вашей точки зрения сайт "лежит", потому что не может дождаться завершения работы мускуля. А я в это время делаю свой запрос к другой странице сайта, который не требует выполнения тяжёлого запроса к базе данных. Для меня сайт откроется или тоже будет лежать?

Мой форум - https://webinfo.guru –Там я всегда на связи
htexture
На сайте с 29.05.2017
Offline
194
#22
webinfo #:

Возможно, мы не поняли друг друга. Попробую переформулировать. Вот допустим, Вы сейчас сделали запрос к сайту. Понятное дело, что с Вашей точки зрения сайт "лежит", потому что не может дождаться завершения работы мускуля. А я в это время делаю свой запрос к другой странице сайта, который не требует выполнения тяжёлого запроса к базе данных. Для меня сайт откроется или тоже будет лежать?

Картинки открывает, страницы хтмл без запроса открывает, в момент тяжелого запроса в базу например на полнотекстовый запрос с изменением (replace), а вот обычные страницы даже с кешем, отдавать не хочет, пока не выполнит запрос мускул. Я надеюсь правильно написал? )
W1
На сайте с 22.01.2021
Offline
283
#23
htexture #:
Картинки открывает, страницы хтмл без запроса открывает, в момент тяжелого запроса в базу например на полнотекстовый запрос с изменением (replace), а вот обычные страницы даже с кешем, отдавать не хочет, пока не выполнит запрос мускул. Я надеюсь правильно написал? )

Правильно написал. Такое впечатление, что проблема не с многопоточностью мускуля, а с использованием нескольких ядер процессора в принципе. То есть если рабочее ядро загружено на 99%, то процесс PHP не может запуститься на другом ядре. А вот с чем это связано -этого я сказать не смогу, в этом я не спец.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#24
htexture #:
Картинки открывает, страницы хтмл без запроса открывает, в момент тяжелого запроса в базу например на полнотекстовый запрос с изменением (replace), а вот обычные страницы даже с кешем, отдавать не хочет, пока не выполнит запрос мускул. Я надеюсь правильно написал? )

А теперь обратимся к вашей же таблице:


И окажется, что надо всё же использовать современный InnoDB и не будет таких проблем. У вас блокировка таблицы идёт и пока не пройдут все изменения, никому даже читать из неё нельзя. 

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
htexture
На сайте с 29.05.2017
Offline
194
#25
LEOnidUKG #:

А теперь обратимся к вашей же таблице:


И окажется, что надо всё же использовать современный InnoDB и не будет таких проблем. У вас блокировка таблицы идёт и пока не пройдут все изменения, никому даже читать из неё нельзя. 

Пример с replace я привел как срочное и безотказное проверка на нагрузку) А так банально, база работает в режиме селекта и только. Но без проблем, в туду лист я добавил иннодб, но все таки хочется видеть загруженность сервера и полный доступ к ресурсам у мариадб, и я думал, что есть какая-то модная команда которую надо прописать в my.cnf и проблема решится)

L
На сайте с 10.02.2015
Offline
220
#26
htexture #:

я думал, что есть какая-то модная команда которую надо прописать в my.cnf и проблема решится)

Скорее есть модная команда, которую нужно оттуда удалить

S
На сайте с 23.05.2004
Offline
316
#27
Sly32 #:
Но Мускля умеет и в многоядерность, но как именно она решает что пора взять второе ядро, я не знаю. Вопрос к знатокам, было бы интересно понять.

Имхо по сессиям соединений.  По крайней мере в сингл режиме больше одного ядра мне не удавалось загрузить.  А вот когда соединений несколько - нагрузка спокойно делиться по ядрам.  Т.е. если ТС смотрит нагрузку только ориентируясь на свои запросы - то и будет видеть одно ядро. Но стоит запустить какой нибудь бенчмарк в много потоков, то нагрузка пойдет по всем ядрам. 

Это просто подпись.
Sly32
На сайте с 29.03.2012
Offline
302
#28
Stek #:

Имхо по сессиям соединений.  По крайней мере в сингл режиме больше одного ядра мне не удавалось загрузить.  А вот когда соединений несколько - нагрузка спокойно делиться по ядрам.  Т.е. если ТС смотрит нагрузку только ориентируясь на свои запросы - то и будет видеть одно ядро. Но стоит запустить какой нибудь бенчмарк в много потоков, то нагрузка пойдет по всем ядрам. 

Еще раз повторюсь словами - одна сессия НЕ РАВНО один процесс. В рамках процесса (ядра) может запускаться много потоков, соответственно и сессий к БД. А вот в какой момент БД поймет что их слишком много и начнет разбрасывать по ядрам - я не знаю. Вообще стало интересно, что хочу поспрашивать старого товарища, который работает в Оракл, уж он то жолжен понимать как это все живет, но из-за разницы в часовых поясах никак не могу выловить его

S
На сайте с 23.05.2004
Offline
316
#29

MySQL generally does not know how to use more than one core (cpu) for one query.

If you have multiple connections, they can use different cpus.

If you are using InnoDB, some of its background tasks (notably I/O) are run in separate threads.

Это с форума mysql.   

1 23

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