Re: Re: Re: Re[2]: Нагрузка на FreeBSD

Igor Sysoev is at rambler-co.ru
Sun Jan 14 22:16:11 MSK 2007


On Sun, 14 Jan 2007, Phil Kulin wrote:

> 14.01.07, Igor Sysoev<is at rambler-co.ru> написал(а):
>
>> > И насколько я помню, linuxthreads таки всё-таки действительно
>> > linuxthreads, т.е. rfork, а libthr - достаточно честные треды. Нет?
>> Да, linuxthreads - rfork, а libthr - трэды, но большой разницы в этом нет.
>> На rfork'е сложно делать POSIX-compatible threads, но к производительности
>> это не имеет отношения. А mysql к такому не совсем POSIX-поведению привык
>> ещё тех со времён, когда под Линуксом были только clone'ированные трэды.
>
> 1. Хм... Мне казалось, что именно разница (может и не существенная,
> понятно, что тот же fork() делается достаточно хитро на современных

rfork() != fork(). Это очень разные вещи. Во FreeBSD fork() - это частный
случай rfork()а: rfork(RFPROC|RFFDG).

> системах) в форках/тредах приводила к тому, что NetBSD достаточно
> долгое время лидировал по бенчмаркам на mysql (родные треды). Ну да
> ладно, я эти тесты не проверял, может там какие гики чего неправильно
> делали.

Имеется ввиду http://software.newsforge.com/software/04/12/27/1243207.shtml ?
Проблема всех этих бенчмарков заключается в том, что их, как правило, проводит
человек, который хорошо ориентируется только в одной OS.

У NetBSD 2.0 интересные потоки на основе scheduler activations (правда,
не знаю, насколько они беспроблемные), но поддержка SMP в ядре на уровне
FreeBSD 3-4, то есть, один глобальный спинлок.

> 2. А сейчас в Linux они сильно отличаются? Опять же, не изучал, но там
> вроде опять что-то процессообразующее...

NPTL использует всё тот же clone(), но его научили совместимости с POSIX.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list