Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Виснет sudo su с загрузчиком /usr/lib/x86_64-linux-gnu/libjemalloc.so.1  (Прочитано 710 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sawa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 61
    • Просмотр профиля
Для загрузки приложений занимающих много памяти использовал LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so командаРаботает отлично, хорошая экономия памяти.
Решил воспользовавшись этой инструкцией https://blog.poiuty.com/ispolzuem-jemalloc-dlya-vsex-prilozhenij.html включить его для всей системы.
Сначала настроил на сервере без гуя, работает без проблем.
Но проблема возникла на компах с гуем.
Память экономит, всё работает но зайти в режим суперюзера невозможно.
На команде sudo su виснет, даже не доходит до запроса пароля.
Вот результат выполнения strace sudo
(Нажмите, чтобы показать/скрыть)
Висело на
futex(0x7f516fca7260, FUTEX_WAIT_PRIVATE, 2, NULL^CProcess 2813 detached^C - это я прервал через CTRL+C

Если нет решения этой проблемы, хоть подскажу как от неё избавиться:
Восстановить работоспособность sudo su можно только из режима восстановления выбрать меню "root"
Перемонтировать корневой раздел из режима "только для чтения" в "чтения и записи"
mount -o rw,remount /И удалить файлик /etc/ld.so.preload
« Последнее редактирование: 01 Апрель 2017, 22:48:20 от Sawa »

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Sawa, Debian?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 27427
    • Просмотр профиля
Вы забыли уточнить, какую именно память вы "экономите".
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
AnrDaemon, Это я полагаю, что-то типа preload что ли?

Оффлайн Sawa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 61
    • Просмотр профиля
Sawa, Debian?
Ubuntu с KDE, версии разные: wily,xenial. Работает только на системе без гуя

Пользователь добавил сообщение 02 Апрель 2017, 01:40:02:
Вы забыли уточнить, какую именно память вы "экономите".
RES
Зависит от приложения, но чем больше задача отжирает памяти с обычным загрузчиком тем более эффективно использовать libjemalloc.so.
Например, на тех приложениях что занимают 2 гига и больше экономия от 5 до 40 процентов.
« Последнее редактирование: 02 Апрель 2017, 01:56:13 от Sawa »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 27427
    • Просмотр профиля
Спасибо, иду спать смеясь.
А вам домашнее задание http://www.linuxatemyram.com/
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Sawa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 61
    • Просмотр профиля
Спасибо, иду спать смеясь.
А вам домашнее задание http://www.linuxatemyram.com/
Спасибо за ссылку. Приятных снов.
Но jemalloc не о том о чём речь в статье. Вот здесь немного инфы: http://jemalloc.net/
jemalloc - это аллокатор. Он ничего не сжимает, не урезает свап, не ограничивает использование кеша и не увеличивает память. Он более эффективно размещает информацию в памяти - менее фрагметированно, в том числе и в кешируемой области. За счёт этого достигается экономия памяти, особенно ощутим эффект на системах где программы работают длительное время без перезагрузок (у меня есть необходимость постоянной работы минимум по пол года).

И пример в стиле "до" и "после". Специально для Вас остановил одно из приложений, занимает в памяти RES до полгига.
При запуске программы с LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so /usr/local/bin/программа
free -m
             total       used       free     shared    buffers     cached
Память:      24110      23730        379         20         59       3744
-/+ буферы/кэш:      19926       4183
Подкачка:       8189       1079       7109

Обычная загрузка:
free -m
             total       used       free     shared    buffers     cached
Память:      24110      23913        196         20         22       3887
-/+ буферы/кэш:      20003       4107
Подкачка:       8189       1099       7089

Экономия небольшая, всего 80 мегов. Но это всего пол часа работы.
К сожалению примера с объёмными программами показать не могу - они круглосуточно используются.
« Последнее редактирование: 02 Апрель 2017, 03:39:06 от Sawa »

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4309
  • Capture the truth
    • Просмотр профиля
Цитировать
Виснет sudo su с загрузчиком /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
1. Ubuntu тут при чем? На других системах ваш "аллокатор" работает нормально?
2. 80 Мб (да пусть даже 1ГБ) свободной памяти правда стоит того, чтобы тратить время на создание костылей к тому, что и так уже давно отлично работает?
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Sawa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 61
    • Просмотр профиля
1. Ubuntu тут при чем? На других системах ваш "аллокатор" работает нормально?
Не понял. Этот пакет есть в репах убунты. Другие системы не пробовал, на ubuntu-server работает. При применении не на всю систему а на конкретные приложения тоже работает. Хотелось упростить настройку и применить к всей системе, но на системах с гуем вылез неприятный эффект который победить я не смог. О чём и попросил здесь помощи.

2. 80 Мб (да пусть даже 1ГБ) свободной памяти правда стоит того, чтобы тратить время на создание костылей к тому, что и так уже давно отлично работает?
80 МБ - это только одно приложение, их намного больше:
(Нажмите, чтобы показать/скрыть)
Да, есть смысл и практическая польза. Я ставлю планок ОЗУ не столько, сколько карман позволяет, а столько - сколько необходимо для работы программ запущенных на этой системе. И если программы начинают через месяц вылетать с сообщением о нехватке памяти то это не значит что я недоставил памяти, а значит что система её не эффективно использует. С jemalloc вылеты прекратились. Пользоваться начал года 2 назад.
Конкретно этот сервер (с которого выводил top и free) используется 3 года. Изначальная конфигурация была с 8 гигами озу. Затем, за первый год, по мере увеличения количества приложений озу расширил до 24-х гигов. После начала использования jemalloc 2 года работы при неизменной конфигурации ПО и железа. На других системах примерно такой же подход, разница только в количестве приложений и озу.
Ну не совсем жадина, подбираю количество озу чтобы до 20% RES памяти оставалось свободно. Часто, в моменты нагрузок, отдельным приложениям требуется дополнительные объёмы.
« Последнее редактирование: 02 Апрель 2017, 13:31:42 от Sawa »

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Sawa, Виртуалки крутите?
24 Гб мало О_о

Оффлайн Sawa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 61
    • Просмотр профиля
Sawa, Виртуалки крутите?
24 Гб мало О_о
На этой системе не кручу, там только бинарники сишные и несколько прог на питоне (pypy).
Извините народ, если кому наступил на религию.
Нашёл исходники и дева: https://github.com/jemalloc/jemalloc
Поставлю из исходников а не из репов, тем более смотрю там работа кипит (крайний коммит 5 дней назад).
Если проблемы останутся то буду деву вопросы задавать.

 

Страница сгенерирована за 0.128 секунд. Запросов: 25.