On Sat, 24 Jul 2004, Alex Povolotsky wrote:
> On Fri, 23 Jul 2004 23:32:46 +0400 (MSD)
> Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
>
> IS> > HЕ HАДО С ЛИHУКСТРЕДАМИ! Вернее, можно, если либо не давать ему
> IS> > много памяти, либо не держать много коннектов. Иначе он
> IS> > бодро-весело схавает всю память (2 гига? Легко, одним глотком!),
> IS> > схавает весь своп и скажет "еще пять раз по столько, тогда и
> IS> > заработаю!". Пробовал, проходились эти грабли.
> IS> >
> IS> > Если так критично использование mysql'ем всех двух процов - 5.2.1
> IS> > и его родные треды.
> IS>
> IS> А как linuxthread'ы едят память - в виде стэков ? А почему на 5.2.1
> IS> этого не происходит ?
>
> В виде буферов. Линукстреды - это форки. Поэтому, буфер у каждого "треда" - свой. При активной работе с буферами они оказываются целиком разными, занимая столько памяти, сколько выдалили, умножить на количество тредов.
> А родный треды на 5.2.1, если мне не изменяет склероз, умеют использовать несколько ароцессоров одновременно, тем не менее память у них реально общая.
LinuxThreads - это не форки, это rfork()и на FreeBSD и clone()ы на Линуксе.
Память у них общая на всех. И соответственно буфер mysql'я тоже.
Игорь Сысоев
http://sysoev.ru