Обновить
67
Kirill A. Korinsky@catap

48
Подписчики
Отправить сообщение
> Имхо это очень логично — если не устраивает системный аллокатор, то бороться с ним, а не дописывать nginx ;-)

Лично мне удобнее поддерживать свой_системный_аллокатор внутри проекта для которого я его точу. Что бы не мешать всей остальной системе, ку?
> Имхо это очень логично — если не устраивает системный аллокатор, то бороться с ним, а не дописывать nginx ;-)

Угу, но если посмотришь на код оригинальный этого там не было. Я это писал, ибо расчитывал использовать в другом виде. Потом только в голову пришло вкорячить в потроха nginx (да-да, изначально это грузилось через ld_preload).
Вы предлагаете хачить системный аллокатор? Или делать его через preload? Первое опасно, второе не удобно для отладки (я не уверен что он всегда будет запускаться с этм кодом, а так, этот код, в него жестово вставлен).

Далее, я покатаюсь, с недельку, на этих аллокаторах, пойму какой из них мне понравился больше, и начну их сильно хачить. И в итоге получу *очень* сильно специфичный аллокатор для nginx, который использую.
угу, только из-за этого pool-based gnu'шный аллокатор показывает свои плохие стороны. Что я и попытался изменить.

Так же прошу обратить внимание на update.
Реализовал. Потребление памяти осталось таким же. idle выше на obsd аллокаторе (что интересно разница между gnu libc и jemalloc по idle не заметна).

Выкладывать это отдельным постом?
А не сделал я его в таком формате, по простой прчини, мне так удобнее запускать nginx ;)

Да, и задачи ускорять php, perl и прочее не было. Еще учитывать надо что это будет хорошо на той стратегии по использованию памяти, какую выбирает nginx.
Это ниразу не новый алокатор, это алокатор из openbsd который я заставил работать в nginx.

Забыл вычистить, огромное спасибо!
За идею спасибо.

/me рад что есть тут еще люди, ради которых стоит сюда писать.
Посмотрел я на jmalloc. Он более сложный чем аллокатор из openbsd. Но любопытсва ради я попробую покататься и на нем ;)
1) Этот аллокатор пришлось доделать

2) я не знал про jemalloc, спасибо, пойду смотреть.

У меня задача ставилась внести в nginx под linux аллокатор на mmap/munmap, я взял первый попавшийся мне аллокатор (так получилось что из openbsd)
А причем тут ncache?
Начнем мы с вопроса ноль. Ты вообще кто? И где я могу почитать твой код?
Аллокатором (от английского to allocate – «размещать», «выделять») называется совокупность механизмов, ответственная за распределение памяти и реализующая операции выделения, освобождения и (опционально) изменения размеров ранее выделенных блоков.
Ссылку на код, пожалуйста. Я должен это почитать!
Если вы мне покажите в nginx (мы о нем говорим) аллокаторы отличные от памяти, я с вами соглашусь.
Кстати, а какие аллокаторы, кроме памяти, вы знаете еще?
Он на freebsd/openbsd очень хороший. А вот в мире linux появляются проблемы.

Я, собственно, и сделал так, что бы он в linux стал таким же хорошим.
Хорошо, не один еще патч он мой не принял. И я пока не вижу смысла пропихивать его в upstream.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность