powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / thread_stack - какое значение необходимо указать?
7 сообщений из 7, страница 1 из 1
thread_stack - какое значение необходимо указать?
    #39442361
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Однотипная база данных, работающая на разных точках и разных версиях MySQL, винда. Во время тестирования на MySQL 5.7.18 наткнулся на ошибку:
#HY000Thread stack overrun: 68680 bytes used of a 196608 byte stack, and 128000 bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.
В явном виде я thread_stack нигде не задавал. Увеличил до 300000 - ошибка исчезла. Но, подключился к клиенту, работающему на 5.6.36 - там то же самое значение 196608, и его хватает.
Как все-таки правильно выбрать значение этого параметра?
...
Рейтинг: 0 / 0
thread_stack - какое значение необходимо указать?
    #39442392
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для чистоты эксперимента развернул на 5.6.36 ту же базу, на которой воспроизвелась ошибка на версии 5.7.18. Тоже работает с дефолтным значением thread_stack=196608. Вопрос по оптимальному значению остается.
...
Рейтинг: 0 / 0
thread_stack - какое значение необходимо указать?
    #39442907
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-MaR, ну нет простого ответа на этот вопрос. Это ведь не зависит от канонов, а от сложности процедурного кода. Раз вам не хватило - значит увеличивайте.
Вот "оптимизаторы" ручки туда тянут сравнительно часто. И, бывает, стреляют сами себе в ногу поставив 128k и оно даже какое-то время отлично работает.

Между прочим, 256 кб - это на 64битных системах. Вы действительно используете 32битную версию ОС там где у вас возникла ошибка?
...
Рейтинг: 0 / 0
thread_stack - какое значение необходимо указать?
    #39442939
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-MaR128000 bytes neededЛюбопытно, это какому же коду понадобилось одним махом 125 КБайт стека?
...
Рейтинг: 0 / 0
thread_stack - какое значение необходимо указать?
    #39442967
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft , это не коду, а процедурным вызовам. Два десятка вложенностей по полсотни локальных переменных...
...
Рейтинг: 0 / 0
thread_stack - какое значение необходимо указать?
    #39442982
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwindМежду прочим, 256 кб - это на 64битных системах. Вы действительно используете 32битную версию ОС там где у вас возникла ошибка?
Система 32-битная. Код, на котором вылетела ошибка - две конструкции вида
Код: sql
1.
2.
3.
4.
5.
6.
7.
select count(Function1(t.id, t.summ)) from 
  (select t1.id as id, sum(t1.Field1) as Summ 
   from Table1 t1 
   where t1.MainId = @InputValue 
   group by t1.id
  ) as t 
  into @val, 


вызываемые в свою очередь из процедуры. В Function1 - инсерты в другую таблицу. Локальных переменных действительно, может не полсотни, но с десяток есть. Работает это все в дополнительном потоке. Но этому коду уже год, работал без проблем вначале на 5.5, теперь на 5.6, а стека не хватило только на 5.7.
Почему хотелось универсального решения: софт устанавливают местные админы непосредственно на удаленных точках, которые с MySQL знакомы очень отдаленно, поэтому я предусмотрел инсталлятор, который автоматом правит некоторые параметры my.ini.
...
Рейтинг: 0 / 0
thread_stack - какое значение необходимо указать?
    #39442984
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-MaRВ Function1 - инсерты в другую таблицу.Мягко говоря, сомнительное решение.
Возможно, стоит переделать на конструкцию INSERT ... SELECT ...
A-MaRНо этому коду уже год, работал без проблем вначале на 5.5, теперь на 5.6, а стека не хватило только на 5.7.Просто везло. Было пограничное состояние, стека хватало впритык. Теперь что-то изменилось - кодировки, количество записей, какие-то внутренние структуры MySQL, средняя или максимальная длина строкового значения в каком-то поле и т.п. (это безотносительно показанного кода), и стало не хватать.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / thread_stack - какое значение необходимо указать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]