LINUX.ORG.RU

Оперативной памяти много, а данные идут в swap

 


0

0

Доброго вечера, ЛОР,

Работаю себе спокойно, уже привык что 8гб в наше время это мало, поэтому стоит своп раздел. Но я как-то задумал что что-то не так, когда хтоп явно показывает 3.3/8 гб памяти, а своп на десяток-другой мегабайт пополняется на глазах. Что открыто: скайп, телеграм, браузер с курсьерой, Clion и собственно htop. Все это точно влезает в 4гб.

Как, что и почему лезет мне в своп?

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

Спасибо! Поменял на 40, посмотрим как оно будет

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

Это нормально. Так и должно быть.

anonymous
()

А кеш, а буфферы, которые сильно влияют на отзывчивость системы при «спокойной работе» с проектам в CLion, интернет-страничками с картинками и другими медия файлами? Может лучше выкинуть неиспользуемую память, и держать активно используемые файлы в кеше вместо того, чтобы насиловать десятки-сотни тысяч раз медленный диск?

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

Дело в том, что я работаю с памятежорными проектами и каждый раз перезагружаться от внезапного oom мне не хочется. А выключить все и дождаться пока своп очистится, сохранив при этом работу системы — как раз. Заодно чай попью.

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

1. То, что htop пишет о занятом месте в свопе, не значит, что своп реально используется.

2. Дожидаться, когда своп очистится, не надо.

#swapoff -a

swapon -a
Но вам это не нужно.

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

Чем способствует своп в наступлении oom и мешает выключению?

Заодно чай попью.

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

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

в котором ты ничего не видишь.

Ну, я прекрасно ощущаю, что что-то не то: даже rofi открывается с трудом, да и рабочие столы не переключаются.

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

Clion

Все это точно влезает в 4гб.

Нет.

RazrFalcon ★★★★★
()

хтоп явно показывает 3.3/8 гб памяти

Смотри MemAvailable через

free -h

а не занятую через htop. И да, если смущает - уменьшай. И не забудб напердолить сжатие нулей через zswap или zram.

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

я работаю с памятежорными проектами и каждый раз перезагружаться от внезапного oom мне не хочется

Обратите внимание на https://github.com/hakavlad/nohang и https://github.com/rfjakob/earlyoom

Сравнение - https://www.opennet.ru/tips/3116_oomkill_memory_earlyoom_nohang_oomd.shtml

anonymous
()

Ещё один.

Не надо смотреть на объем занятого в свапе, надо смотреть на активность свопинга (vmstat характеристики swap in/out), как часто оно туда скидывает и как часто из свопа читает.

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

Nastishka ★★★★★
()

И даже если активность по свапу есть это ничего не значит если у вас сумма service time + wait time по свап-разделу меньше 5 миллисекунд. Вы такого свапинга просто не заметите

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

надо смотреть на активность свопинга (vmstat характеристики swap in/out)

Есть более лучшая метрика: PSI.

nohang и oomd умеют в PSI - это именно то, что вам нужно:

PSI aggregates and reports the overall wallclock time in which the tasks in a system (or cgroup) wait for contended hardware resources.

This helps users understand the resource pressure their workloads are under, which allows them to rootcause and fix throughput and latency problems caused by overcommitting, underprovisioning, suboptimal job placement in a grid, as well as anticipate major disruptions like OOM. - https://lwn.net/Articles/759658/

PSI provides for the first time a canonical way to see resource pressure increases as they develop, with new pressure metrics for three major resources—memory, CPU, and IO.

These pressure metrics, in conjunction with cgroup2 and other kernel and userspace tools described below, allow you to detect resource shortages while they’re developing, and respond intelligently—by pausing or killing non-essentials, reallocating memory in the system, load shedding, or other actions.

PSI stats are like barometers that provide fair warning of impending resource shortages, enabling you to take more proactive, granular, and nuanced steps when resources start becoming scarce. - https://facebookmicrosites.github.io/psi/docs/overview

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

А выключить все и дождаться пока своп очистится, сохранив при этом работу системы — как раз.

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

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

- этот дело говорит.

Короче, 2 шага:

- zram или zswap (их хорошая настройка - отдельная тема)

- nohang или earlyoom

anonymous
()

Раздался первый звоночек

Звоночек к тому, чтобы задуматься об апгрейде.

Как, что и почему лезет мне в своп?

Неважно.

iZEN ★★★★★
()
Ответ на: Раздался первый звоночек от iZEN

Принимаю любые донаты на новый лаптоп.

По тому что выше: я _замечаю_ когда что-то уходит в своп, потому что мой hdd кряхтит и даже загрузка rofi/терминала занимает 3-5 секунд вместо привычных долей секунд когда они нормально закэшированы. Тред отмечен как решеный, решение было найдено. Про oom киллеры тут каждую неделю треды, все давно обсудили.

zram я смотрел давно, не вариант, из-за относительно не нового и горячего процессора, лишний напряг делать не хочется.

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

zram я смотрел давно, не вариант, из-за относительно не нового и горячего процессора, лишний напряг делать не хочется.

Слабый аргумент. Зрам дает очень маленькую нагрузку на процессор, но отличный выигрыш IO и общего времени выполнения задач при своппинге.

Это как раз лучший вариант при работе с HDD: своп на HDD отвратительно медленный.

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

Более того, можете увидеть тому некоторое количественное подтверждение, если сидите на ядре с поддержкой PSI:

Сравните показатели давления io и memory при работе с zram и без.

Для мониторинга можете использовать https://github.com/hakavlad/nohang#psi-monitor

Пример вывода:

$ psi-monitor
Set target to SYSTEM_WIDE to monitor /proc/pressure
Starting psi-monitor, target: SYSTEM_WIDE, period: 2
------------------------------------------------------------------------------------------------------------------
 some cpu pressure   || some memory pressure | full memory pressure ||  some io pressure    |  full io pressure
---------------------||----------------------|----------------------||----------------------|---------------------
 avg10  avg60 avg300 ||  avg10  avg60 avg300 |  avg10  avg60 avg300 ||  avg10  avg60 avg300 |  avg10  avg60 avg300
------ ------ ------ || ------ ------ ------ | ------ ------ ------ || ------ ------ ------ | ------ ------ ------
  0.17   0.83   0.57 ||  11.54  49.25  32.03 |  11.27  45.70  29.59 ||  42.80  78.67  42.78 |  42.09  74.13  39.81
  0.14   0.80   0.57 ||   9.63  47.67  31.81 |   9.41  44.24  29.39 ||  40.12  77.01  42.68 |  39.54  72.62  39.73
  0.11   0.77   0.56 ||   7.88  46.11  31.60 |   7.70  42.79  29.19 ||  32.85  74.49  42.39 |  32.38  70.25  39.46
  0.09   0.75   0.56 ||   6.45  44.60  31.38 |   6.31  41.39  28.99 ||  27.08  72.09  42.11 |  26.69  67.98  39.19
  0.07   0.72   0.55 ||   5.28  43.14  31.16 |   5.16  40.04  28.79 ||  22.90  69.86  41.85 |  22.58  65.89  38.95 
hakavlad ★★★
()
Ответ на: комментарий от JAkutenshi

По тому что выше: я _замечаю_ когда что-то уходит в своп, потому что мой hdd кряхтит и даже загрузка rofi/терминала занимает 3-5 секунд вместо привычных долей секунд когда они нормально закэшированы.

Надо отложить эмоции и понять, что и как происходит. Если это происходит ровно один раз, то это допустимый компромисс в цене памяти/предоставленные ресурсы под задачу. Отнесите это на момент старта/инициализации. Ведь иксы тоже не моментально стартуют, сколько памяти не дай. Если это происходит ровно два раза, когда память на втором разе уже есть свободная, то это происходит устаканивание задействованой памяти и мусора. Это неприятно, возможно стоит задуматься чуть увеличить память под задачу, но не срочно. А вот если всё время — то решить можно только приведения количества памяти под задачу.

vodz ★★★★★
()
8 апреля 2020 г.
Ответ на: комментарий от JAkutenshi

каждый раз перезагружаться от внезапного oom мне не хочется

Зачем перезагружаться, если есть earlyoom и nohang?

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

Анонимус написал чушь: слово «буфер» пишется с одним «ф», его совет совершенно бесполезен, а у автора темы нет проблемы, которую надо было бы решать.

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

Анонимус откопал тему прошлого года Оо с тех пор у меня 24гб памяти и проблем действительно нет

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

Потому что надо читать умные книжки. Своп испльзуется всегда, а не только когда памяти «мало».

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

Своп испльзуется всегда

Если его отключить, то не используется и живется нормально. Поэтому зря он используется всегда.

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

Если его отключить

Доктор, я буду жить? Да, но хреново.

На самом деле туда вымещается всякий мусор. Т.ч. оно никому, кроме свапо-фобов не мешает.

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

Не-анонимные страницы «высвапливаются» даже без свапа.

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

На самом деле в свап падают и программы вроде либре офиса. Почитал в браузере какое-то время - либра будет тормозить даже после закрытия. Потому что данные, которые должны ускорять работу и храниться в памяти почему-то выгружаются на диск. Если файл подкачки в конце жесткого диска, а либре офис в его начале, то падение отзывчивости будет весьма серьезное и это не исправляется автоматически, потому что система считает данные попавшие в кеш не стоящими внимания. Так что никакая это не фобия, а обоснованная критика логики работы, которая не учитывает особенности железа и прямо нарушает смысл того зачем было организовано хранение данных в оперативной памяти. Необходимо очищать кеш диска при изменении загруженности памяти в данный момент, вручную отключая файл подкачки.

anonymous
()
30 июня 2020 г.
Ответ на: комментарий от JAkutenshi

работаю с памятежорными проектами и каждый раз перезагружаться от внезапного oom

Зачем же перезагружаться от внезапного ООМ? ООМ нужно предотвращать, а не дожидаться его.

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

Для десктопа рекомендую nohang. Демон способен аккуратно предотвращать нехватку памяти, сохраняя отзывчивость десктопа и предотвращая необходимость перезагрузки после ООМ https://github.com/hakavlad/nohang

anonymous
()

Я бы подключал своп по мере необходимости, а все остальное время держал отключенным.

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

При выключенном свопе дефрагментация памяти невозможна. Докажи обратное.

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