LINUX.ORG.RU

Сообщения kuraga

 

Прошу помощи в продвижении баги Glibc: free не освобождает часть памяти

Есть в Glibc особенность, описанная [1] во времена царя гороха.

Если я правильно понимаю, это является причиной многих ситуаций, когда у приложений «течет память». И почему-то я никогда не встречал пояснения, что это by design благодаря... Glibc! Пока сам не столкнулся: я аналитик (но был программистом), и у меня в Pandas тупо сжирается вся память даже после сборки мусора.

Так вот, по сути. Есть такой mallopt-параметр, M_MXFAST [2]. Он задает порог размера блока (я сейчас пересказываю, возможно несоответствие действительности), меньше которого не происходит реальное освобождение блока памяти при вызове free. Заметим, кстати, что по умолчанию этот параметр никак не 0 (а 64*sizeof(size_t)/4).

Так вот, при повторных вызовах free аккумуляции значения, которое сравнивается с порогом, не происходит. То есть, аллоцировав [3] миллион раз 64 байта, а затем миллион раз ее освободив, мы получим 64 мебибайта текущего использования памяти.

Память освобождается только в случае вызова malloc_trim(). Ну, или, отключения всей этой оптимизации: mallopt(M_MXFAST, 0).

Понятно, что каждый разработчик может выбрать один из двух вариантов, но, де-факто, я предполагаю, что мало кто об этом задумывается. Там же [1] отмечают, что «в KDE это порождает утечки 600Mb». И, собственно, предлагают, аккумулировать количество и/или общий размер неосвобожденных таким образом блоков. Или, хотя бы, ввести переменную окружения по аналогии с MALLOC_TRIM_THRESHOLD_ [2].

Но за 6 лет даже не разрослась дискуссия. А, кажется, место многих проблем-то! Может, хоть знать бы об этом хорошо? Вот разработчики Pandas, кажется, не знают: [4], [5]. (Мне кто-то подсказал в том треде, разработчики не заметили. И привлекать внимание не хочется закроют по WONTFIX и все.) Я понимаю - закрой рот и напиши патч, всё такое. Но думаю, стоит достучаться до тех, кто разбирается в коде Glibc. И в его подходах.

Подскажите, как быть? И прав ли я в утверждении о том, что надо что-то делать? :)

P.S. Хотя, с другой стороны, [6].

---

 , , , ,

kuraga
()

Почему под SSH другие настройки?

Рассмотрим три сценария:

1) Запускаю VirtualBox (просто, из Bash),

2) Захожу на узел из пункта 1 по SSH, затем запускаю VirtualBox (из Bash),

3) Захожу на узел из пункта 1 по SSH, указывая VirtualBox в качестве <command>.

Разумеется, пользователь один и тот же. VirtualBox - для примера.

Получаются разные локали и шрифты. То есть разные настройки.

Каким образом образом такое выходит?

Спасибо!

 , ,

kuraga
()

Старая версия Viber

Ни у кого нет deb-файла Viber 6.x.x? Ну или хотя бы установлен - запакуйте /opt/viber, пожалуйста?

Переустановил, а 7-я, оказывается, не идет на Mint 17/Ubuntu 14.04... (Ну, точнее, ругается на версии Glibc.)

 , , ,

kuraga
()

Почему возникает чрезмерное использование диска?

Ubuntu 14.04, обновляемая. 4Gb RAM и 8Gb подкачки. Причем подкачка используется реально.

Но при приближении к исчерпанию RAM, помимо задействования подкачки, начинается жуткое использование диска. Отзывчивость падает до минимума, вплоть до нескольких минут.

Что делать? Спасибо.

 ,

kuraga
()

WGET: отменить создание поддиректорий

Здравствуйте!

WGET с опциями --mirror --recursive при сохранении страницы '/about' создает файл 'about/index.html'.

Можно избежать создание поддиректорий? Чтобы создавался файл 'about.html'.

Спасибо.

 ,

kuraga
()

Marking TSC unstable due to possible TSC halt in C2

Сообщение при загрузке дистриба Slax на третьей секунде и висняк:

Marking TSC unstable due to possible TSC halt in C2

В чем прикол?

kuraga
()

GParted Live CD не грузится

GParted Live CD (последняя версия) не грузится. Пишет «Volume is dirty. Will not be able to remount read-write. Run chkdsk and mount in Windows» (про NTFS-том). Делал «chkdsk /f /x». Все чисто. Что делать?

kuraga
()

RSS подписка на новые темы