LINUX.ORG.RU

Что-то странное с кэшем в Linux-дистрибутивах

 , , , ,


3

5

Я не знаю, как вы, но я давно заметил, что некоторые дистрибутивы (Ubuntu, Fedora, Linux Mint) не умеют обращаться с кэшем памяти. Я не шибко знаток этой темы, но кэш просто заполняется до отказа, пока система не фризится жёстко (только перезагрузка помогает). Есть ли хотя бы какие-то вменяемые костыли, чтобы это не происходило? Знаю про решение с освобождением кэша командой «sudo sync; echo 3 > /proc/sys/vm/drop_caches», но оно настолько костыльное, что просто ощущаешь себя реальным инвалидом.

Решение

Не рекомендую делать реиндексацию. Комп тупо не справится (у меня 8 ядер, 16 Гб ОЗУ - не потянул). Проще скачать блокчейн заново.

★★★★★

Последнее исправление: Desmond_Hume (всего исправлений: 10)

Ответ на: комментарий от anonymous

В следующий раз (тьфу-тьфу-тьфу), надо будет попробовать. Всё-таки, линукс - это терминал, прежде всего, и, возможно, терминально эта фича работает.

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Desmond_Hume

Пять звезд, а такую херню несешь..

anonymous
()
Ответ на: комментарий от anonymous

Если я и дальше продолжу с тобой общаться, чую, что стану 10-звёздочным).

Desmond_Hume ★★★★★
() автор топика

Мужики, дорогие онанимусы, не переживайте за то, что у вас нет ЛОР-звёзд. Мы верим в ваш ум, но звёзды дают не за ум, а за количество постов. Не комплексуйте!

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от ValdikSS

Человек из того тикета вовсе не имеет swap

When I turn on swap to /dev/sda2 which resides on an SSD, I get complete system freezes while swap is being accessed.

– как раз проблема со свопом.

Изменение vm.min_free_kbytes ни к чему хорошему не приводит, обычно делает только хуже.

Уменьшение vm.min_free_kbytes достоверно увеличивает давление memory/io в PSI метриках при автивном своппинге в моей синтетике.

Увеличение по сравнению с дефолтом заметно увеличивает плавность работы при активном своппинге.

hakavlad ★★★
()
Ответ на: комментарий от ValdikSS

За 2 дня так и не добился надёжного воспроизведения.

Вот с этим (как у того юзера, репортнувшего баг)

vm.swappiness = 1
vm.min_free_kbytes = 32768

легко воспроизводится. При запуске небыстрого пожирателя памяти заморозилось.

Лог метрик PSI: http://okturing.com/src/7496/body - видна огромная задержка ожидания получения ресурсов memory и io.

О PSI: https://lwn.net/Articles/759658/

hakavlad ★★★
()
Последнее исправление: hakavlad (всего исправлений: 1)

Интересно, во фряхе такая же беда? Никто не в курсе?

Desmond_Hume ★★★★★
() автор топика
21 февраля 2020 г.
Ответ на: комментарий от Desmond_Hume

Если оно рабочее, странно, что по дефолту не пихают этот пакет в релизы.

Пихают, Fedora 32 Workstation будет поставляться с включенным по умолчанию earlyoom.

anonymous
()
Ответ на: комментарий от Deleted

Нашлось.

Настройки VM:

  • не запрещай overcommit
  • не делай маленьким swappiness
  • органичивай размер грязных байт

Сжатие свопа:

  • сжимай своп: zswap, zram.

Юзерспейсные обработчики:

  • используй nohang с коррекцией на основе метрик PSI.

Настройки приложений:

  • не запускай много потоков. ninja -j2 не сожрет всю память, в отличие от ninja -j64.
anonymous
()
Ответ на: комментарий от anonymous

Ну, ядро у меня так и настроено.

-j64 жёстко, под кресты точно никакой памяти не хватит. Под чистый си может хватить. :)

Deleted
()
Ответ на: комментарий от Desmond_Hume

переиндексации нет в терминале. Команда bitcoin-qt -reindex вызывает то же самое графическое окошко.

Не смеши )))

$ man bitcoind

-reindex

Rebuild chain state and block index from the blk*.dat files on disk
Rx0
()
Ответ на: комментарий от Desmond_Hume

Я читал этот man. Что там смешного?

Это ты «смешной». ) Твоя фраза переиндексации нет в терминале. ложна. )

Вывод показать с переиндексацией в терминале?

Rx0
()
Ответ на: комментарий от anonymous

Забей, он упорот. Я ему про реиндекс ещё в прошлый раз говорил.

Учту. )))

Для @Desmond_Hume:

Почитал тред, все твои проблемы из-за не умения правильно настроить систему, а так-же читать документацию и делать выводы. IMHO.

Rx0
()
Ответ на: комментарий от Desmond_Hume

Покажи.

Не хочу. )

 -Предлагаю вам взять несколько журналов в пользу детей Германии по полтиннику штука…
 -Нет, не возьму. 
- Но почему вы отказываетесь? 
- Не хочу. 
- Вы не сочувствуете детям Германии?
- Сочувствую. 
- А, полтинника жалко? 
- Нет. 
- Так почему же? 
- Не хочу…

"Собачье сердце" (c)

Rx0
()
Ответ на: комментарий от Rx0

Да ты юморист, я смотрю. Прям чуть живот не надорвал!

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Desmond_Hume

Чего только 2009-2010 в логах?

А зачем? У меня нет необходимости делать полную переиндексацию. Я тебе показал что -reindex в консоли работает. Ты заявлял что в консоли не работает. Твои проблемы с завершением реиндексации и тормозами системы к данному вопросу отношения не имеют.

Rx0
()
Последнее исправление: Rx0 (всего исправлений: 1)

Не рекомендую делать реиндексацию. Комп тупо не справится (у меня 8 ядер, 16 Гб ОЗУ - не потянул). Проще скачать блокчейн заново.

А теперь по этому поводу отвечу. В сети очень много информации для тех кто «словил» тормоза при переиндексации. Это действие вызывает огромный IO и если у тебя дисковая подсистема, кеши и т.д. криво настроены то reindex ты не сделаешь никогда. Есть один трюк по разделению содержимого .bitcoin директории на разные устройства и определенный тюнинг кешей. Ищи статью сам.

Rx0
()
Ответ на: комментарий от Rx0

Слышал звон, да не знаешь где он. В своём логе ты показал работу демона bitcoind. Я не писал, что демон не работает. Речь шла о команде bitcoin-qt -reindex Я-то ждал, что ты покажешь выхлоп именно этой команды.

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Rx0

Я не стал заморачиваться. Это как раз тот случай, когда и то действие, и другое - тратит одни и те же ресурсы. Более того, как по мне, именно реиндексация ещё больше нагружает проц, чем просто скачивание цепочки. Так что, в этом случае, целесообразнее и гораздо быстрее закачать цепь заново, а не проверять каждое звено поломанной цепи.

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Desmond_Hume

Слышал звон, да не знаешь где он. В своём логе ты показал работу демона bitcoind. Я не писал, что демон не работает. Речь шла о команде bitcoin-qt -reindex Я-то ждал, что ты покажешь выхлоп именно этой команды.

Кушать подано - LOG bitcoin-qt -reindex

Terminal-1:

$ bitcoin-qt -reindex -listen=0 -maxconnections=64 -dbcache=4096 -disablewallet=1 -rpcbind=127.0.0.1

Terminal-2:

$ tail -f ~/.bitcoin/debug.log

Надеюсь это в логе сам найдешь… )

$ cat debug.log  | egrep reindex
2020-02-22T15:28:17Z Command-line arg: reindex=""
$ cat debug.log  | egrep Reindex
2020-02-22T15:28:18Z Reindexing block file blk00000.dat...
2020-02-22T15:28:25Z Reindexing block file blk00001.dat...
2020-02-22T15:28:28Z Reindexing block file blk00002.dat...
2020-02-22T15:28:32Z Reindexing block file blk00003.dat...
2020-02-22T15:28:35Z Reindexing block file blk00004.dat...
2020-02-22T15:28:38Z Reindexing block file blk00005.dat...
2020-02-22T15:28:41Z Reindexing block file blk00006.dat...
2020-02-22T15:28:44Z Reindexing block file blk00007.dat...
2020-02-22T15:28:47Z Reindexing finished

Еще вопросы? )))

Rx0
()
Последнее исправление: Rx0 (всего исправлений: 2)
Ответ на: комментарий от Desmond_Hume

именно реиндексация ещё больше нагружает проц, чем просто скачивание цепочки. Так что, в этом случае, целесообразнее и гораздо быстрее закачать цепь заново, а не проверять каждое звено поломанной цепи.

Ты гений… )))))))))

Rx0
()
Ответ на: комментарий от Rx0

Вопрос: где начало команды в логе bitcoin-qt? В логе просто выхлоп, который может и демон сделать. Скопируй начало выполнения хотя бы - из терминала. Не переживай, корить за то, что там что-то подтёр (имя пользователя и т. п.) - не буду, мне бы просто начало рабочее посмотреть. Потому что у меня не работало - открывалось окошко GUI.

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Desmond_Hume

Вопрос: где начало команды в логе bitcoin-qt? В логе просто выхлоп, который может и демон сделать.

Ты совсем ку-ку? ))) Повтори мои команды в терминале. )))

$ tail -f ~/.bitcoin/debug.log

Иди читай $ man tail и не позорься… )))

Rx0
()
Последнее исправление: Rx0 (всего исправлений: 1)
Ответ на: комментарий от Rx0

Ты вообще понимаешь, что я прошу? Мне не нужен твой лог-файл. Мне нужно увидеть рабочий выхлоп в терминале. Лог свой и его концовку можешь показывать сколько угодно. Всё зависит от настроек, куда ты и откуда будешь складывать свой лог. Речь не о логе. Речь идёт о рабочем состоянии команды. Если ты не умеешь копировать строчки в терминале, сделай хотя бы скриншот. Личную инфу затри.

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Desmond_Hume

Потому что у меня не работало - открывалось окошко GUI.

Хватит уже херню нести? coind и coinqt из общих сорцов собираются, реиндекс есть и там и там. Если все вокруг тебя обманывают, открой код и почитай.

anonymous
()
Ответ на: комментарий от Desmond_Hume

Мне не нужен твой лог-файл. Мне нужно увидеть рабочий выхлоп в терминале.

ДЛЯ ТЕХ КТО В ТАНКЕ - ПОВТОРЯЮ!

  1. Открой два терминала

  2. В первом введи команду bitcoin-qt -reindex -listen=0 -maxconnections=64 -dbcache=4096 -disablewallet=1 -rpcbind=127.0.0.1

  3. Во втором терминале введи команду tail -f ~/.bitcoin/debug.log

Сиди и втыкай на лог выполнения первой команды во втором терминале.

Что тут еще не понятно? )

Если ты не умеешь копировать строчки в терминале, сделай хотя бы скриншот.

Все, иди в сад курить бамбук! )))

Rx0
()

История болезни

Вишенка на торте: переиндексации нет в терминале. Команда bitcoin-qt -reindex вызывает то же самое графическое окошко.
демон работает в фоне, что не совсем удобно.
Всё-таки, линукс - это терминал, прежде всего, и, возможно, терминально эта фича работает.
Я не писал, что демон не работает

Бегает и кричит «докажите мне, что я неправ! Докажите!». Зачем тебе что-то доказывать, если ты сам не хочешь разобраться?

anonymous
()
Ответ на: комментарий от Desmond_Hume

Вот так выполняется команда у меня - вызывается GUI.

Открываю кутишный бинарь с гуем - вызывается GUI! Вот это поворот.

anonymous
()
Ответ на: комментарий от anonymous

Дык, ты это Андрюшке объясни - у него-то в терминале всё работает))).

Desmond_Hume ★★★★★
() автор топика
Ответ на: комментарий от Desmond_Hume

может так будет понятно. Вот так выполняется команда у меня - вызывается GUI.

Так у тебя нихрена нет! Что ты собрался реиндексировать?!? )))

Ты сначала сделай первоначальную настройку и стяни хотя-бы пару блоков.

Rx0
()
Ответ на: комментарий от Rx0

Сделай такой же скрин, как я. Чего там сложного?

Кстати, а какая у тебя версия кора? Может у тебя древний кор, который ещё работал в терминале, а мы тут ржём почём зря …

У меня - bitcoin-0.19.0.1

Desmond_Hume ★★★★★
() автор топика
Последнее исправление: Desmond_Hume (всего исправлений: 2)
Ответ на: комментарий от Desmond_Hume

Понятно только то что ты не понимаешь как это работает. Все, я покидаю твоё чудное общество. ) Могу приехать настроить, билет оплатишь из LA? ) Думаю нет. Физкульт привет, учи матчасть. )

Rx0
()
Ответ на: комментарий от Rx0

Юморист, у меня-то всё работает - то, что мне нужно. Уже давно всё настроил. Эта тема была открыта во время проблем. Но всё равно интересно, почему так … у тебя всё в терминале открывается и пашет, типа, а у меня GUI)).

Desmond_Hume ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.