LINUX.ORG.RU

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

 ,


1

2

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

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

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


Что делать?

  1. Докупать RAM.
  2. Снижать использование RAM, чтобы не приближалось к 4 GB. Например отказаться от тяжёлых DE (использовать простой WM), не открывать по 100500 вкладок в браузере. Жизнь есть даже на 2 GB RAM, если не жировать.
  3. Использовать SSD, а не HDD для подкачки, хотя это не решение проблемы, а лишь небольшое устранение сильно мешающих симптомов.

(в порядке снижения эффективности/правильности)

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

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

Спасибо за ответ!

То есть, если вкратце: имея Linux и HDD, невозможно настроить использование подкачки без подвисания до степени «секунды в трее не обновлялись две минуты, но мышка шевелится»?

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

Отключите своп, у вас с него толку все равно нет. А там либо сама система разберется с нагрузкой, либо вы лишнее уберете.

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

То есть, если вкратце: имея Linux и HDD, невозможно настроить использование подкачки без подвисания до степени «секунды в трее не обновлялись две минуты, но мышка шевелится»?

Вкратце: нигде невозможно, не только в Linux. Свап свою задачу решает — позволяет тебе самому (кое как, но всё же) закрыть лишнее неважное и отжирающее память до того, как oom-killer убьёт что-то важное в самый неподходящий момент. Также свап позволяет тебе гибернацию. Чудесного удвоения RAM (напомнить, что такое RA в RAM, и как устроен HDD?) без заметных неудобств для пользователя от него ждать не стоит — чудес не бывает.

Несколько исправить ситуацию можно с помощью SSD — будет ощутимо лучше (ведь обращения идут как раз к рандомным участкам, а HDD не позволяет так быстро к ним обратиться), но это всё равно не то же, что настоящая RAM. Также частично побороть симптомы можно настроив swappines, сменив DE (ведь именно там почему-то не обновляются часы, хотя иксы курсоры мыши двигать позволяют) и применив прочие подобные шаманства. Но это не решение проблемы. Решение проблемы — делать так, чтобы оперативная память не переполнялась. Её переполнение и уход в свап — не есть штатная ситуация.

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

Отключите своп, у вас с него толку все равно нет. А там либо сама система разберется с нагрузкой, либо вы лишнее уберете.

У меня - это по каким причинам? HDD, как мне написали выше? Очевидно, свап я подключил для большей памяти. А вот почему нет толку - я и спрашиваю...

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

будет ощутимо лучше (ведь обращения идут как раз к рандомным участкам, а HDD не позволяет так быстро к ним обратиться)

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

swapiness пробовал менять. Нет.

P.S. А откуда тогда мантра Swap = 2 * RAM? Да и во времена ее SSD не было.

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

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

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

Очевидно, свап я подключил для большей памяти. А вот почему нет толку - я и спрашиваю...

Толк есть в гибернации и в том, что когда система уйдёт в свап, ты сможешь сам (пусть и мирясь со снизившейся отзывчивостью и прочими радостями) освободить память до того, как OOM-killer прибьёт что-то самое неподходящее и важное. Если тебе ни то ни другое не нужно, то тебе не нужен свап. Если тебе нужно больше памяти — тебе надо купить больше памяти. Чудес не бывает.

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

Либо что-то криво работает, либо ваши задачи чрезмерно пузатые. Для более точного диагноза нужны или логи или экстрасенсы. А своп хорош там, где он используется не постоянно и не под завязку. Без свопа будет легче разбираться чем перегружена система. Смотрите нагрузку по процессам.

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

P.S. А откуда тогда мантра Swap = 2 * RAM?

Из девяностых. Когда нормой было 32–64 метра оперативы. В нулевых уже как правило советовали делать равным. И в основном для гибернации. Хотя иногда свап и полезен, чтобы выгружать неиспользуемые данные. Но не когда память переполнена целиком.

И да, даже без свапа лучше не забивать всю RAM целиком. Места под кэши не останется, тоже всё I/O начнёт медленне работать, потому что на каждый чих чтение с диска. «Свободная» память как правило на самом деле вовсе не свободная, а используется под кэши. Отчасти благодаря этому «памяти много не бывает» верно практически для всех, а суждения в духе «куда мне 16 гб, если я из своих 8 только 7.5 забиваю» неверны.

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

Свап не даёт больше памяти, потому что диск медленнее в тысячи раз по iops. Он максимум годится чтобы скинуть в него неиспользующиеся но открытые приложения и данные(которые и так можно было бы закрыть), а если они используются будет жопа.

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

Гы. Значит вы все-таки чудес ждете. Ну или если вы уверены что ваши компиляции с виртуалками не настолько пузатые, то проверьте hdd как следует, они с такими эффектами помирать частенько начинают

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

Неа, свап даёт возможность скинуть неактивные страницы на диск. С железом проблем точно нет.

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

имея Linux и HDD, невозможно настроить использование подкачки без подвисания до степени «секунды в трее не обновлялись две минуты, но мышка шевелится»?

Часть ОЗУ Linux отводит под кеши данных с жёсткого диска. Когда памяти становится мало, эти кеши тоже становятся маленькими и системе чаще приходится залезать на диск как за свопом, так и за данными.

Поэтому краткий ответ — да, невозможно. Даже если убрать своп на SSD.

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

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

vaddd ★☆
()

Windows 95 и 98 нормально работали со свопом, даже с учётом скоростей жёстких дисков тех лет. Win2k и XP вроде тоже. Vista и 7 не пробовал.

Линукс тоже раньше нормально работал со свопом. Потом сделали CFS и ногами упёрлись, не давали добавить ни один другой планировщик процессов. И вроде с этого всё и началось. Программисты ядра объясняли тормоза «набором трудноуловимых багов ядра, которые по-отдельности - мелочь, а в сумме - жуткие тормоза». В общем - любая отговорка, лишь бы не избавляться от CFS! На серверах справляется - и на том спасибо! Самые эпичные тормоза (по моему субъективному ощущению) были на 2.6.35 - 39.

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

4gb - это для большинства пользователей не так уж мало. Причина подобных эффектов чаще всего в неоптимальности пользования софтом. Смотрите что ест больше всего памяти и выясняйте почему.

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

Все от задач зависит. Если перегрузить систему десятикратно, то win95 тормозил точно так же, как в первом посте ТС описано )

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

Пробовал и планировщики менять...

kuraga
() автор топика

Пошаманить значением vm.swappiness пробовал?

Очень хорошо система может работать при значении 100 ( Однако придется смириться с тем, что переключение на неактивное приложение займет секунд десять)

При таком раскладе работал с процессом, отъевшим 24Гб из 2 физических (специально откусывал 30гиг раздел под свап). Тормозило, да, но не висло насмерть...

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

Может я и ошибаюсь. Я базируюсь на следующих наблюдениях. Был 486-й комп с 95-й. Был прайс в экселе. Он открывался 5 минут (тогда как на Pentium III - 2 секунды). В процессе открытия, фоновые процессы не тормозили. Замедлялись, конечно, но не полный фриз.

А потом у меня была SUSE 10 и 10.1. Тоже как-то знатно нагрузил систему, затем запустил Amarok. Старт - 40 секунд вместо привычных 5-и. Игра стала идти рывками. Но в целом, система была отзывчивая.

Примерно в 2009 году всё началось. Ubuntu 9.04 и 9.10 - я ведь их потому и покинул, что они знатно тормозили, тогда как предыдущие убунты - нет. И ещё лил кучу злобы в их адрес на ЛОРе, за что был неоднократно забанен: один из модераторов думал, что я - хейтер линукса, тогда как я был хейтер конкретно одного дистрибутива (хоть и самого популярного).

И мне кажется что причина 12309 - CFS. Принято в ядро в версии 2.6.23. Могу ошибаться. С принятием CFS произошла грязная история: один из основных программистов ядра Linux повёл себя некрасиво. Склонил на свою сторону Линуса Торвальдса, он на его стороне.

Я надеюсь что когда-нибудь десктопный линукс будет нормально своппиться, а не как сейчас. И что это произойдёт не когда писюки будут производительностью с серверы, а благодаря давно назревшим системообразующим изменениям в ядре Linux.

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

Вам поможет только наращивание RAM

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

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

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

Вообще не в планировщике дело(давно везде ncq и есть bfq, вообще никак не помогает). На самом деле в подсистеме виртуальной памяти.

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

И мне кажется что причина 12309 - Linux

Не благодари

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

А можно описать, какие изменения произошли в подсистеме виртуальной памяти? Может, какие-то названия, символизирующие изменения...

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

Windows 95 и 98 нормально работали со свопом, даже с учётом скоростей жёстких дисков тех лет.

Не рассказывай сказок, хорошо? Особенно людям, до сих пор помнящим треск жестких дисков на Pentium 133/16 Mb/Windows 95.

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

Из последнего гуглить writeback throttling.

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

Ну я помню как работает 95 и на 486dx2-80, и на 386sx-40. Там диски трещали не из-за свопа, а из-за постоянного обращения к системным файлам. А тормоза свопирования- это тормоза приложений в первую очередь - хоть в винде, хоть в линуксе.

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

Открывал электронную таблцу размером 3,5 Мб на компьютере с восемью Мб. Неспешно похрустывая, файл в итоге открывался спустя 5 минут. Поиск работал, листать, читать и вносить значения было можно. А если мне нужно было остановить открытие файла, я просто жал на крестик - и всё. В линуксе при активном своппинге, чтобы закрыть программу, нужно жать Ctrl-Alt-F1, набирать логин и пароль, и видеть «превышено время ввода пароля 120 сек» - настолько всё тормозит.

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

Поправлюсь что в линуксе 2009 года и новее. В линуксе 2007-го всё своппится нормально.

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

А если мне нужно было остановить открытие файла, я просто жал на крестик

Примораживающейся мышкой, да. У нас последний 486dx4-100 выинули из лаборатории не так давно, в 2014-м.

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

В линуксе при активном своппинге, чтобы закрыть программу, нужно жать Ctrl-Alt-F1, набирать логин и пароль, и видеть «превышено время ввода пароля 120 сек» - настолько всё тормозит.

Зависит от того, проявляется у тебя 12309 или нет. Если нет — то никаких проблем той же мышкой ткнуть в тот же крестик, только мышка при этом не подвисает.

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

Ну, может воспоминания из детства приукрашены. Так или иначе, своппинг в винде можно даже не заметить, тогда как переползание через 60% занятой ОЗУ в линуксе (дефолтное значение swappiness) чувствуется всегда!

> Зависит от того, проявляется у тебя 12309 или нет

Не могу не согласиться.

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

тогда как переползание через 60% занятой ОЗУ в линуксе (дефолтное значение swappiness) чувствуется всегда!

Нет. Я же постоянно забиваю ОЗУ при помощи darktable и пишу сейчас эти строки без каких-либо проблем, при том, что 7Гб ОЗУ из 8 занято экспортом фотографий.

Но стоит мне поставить проприетарный драйвер AMD, как можно будет сливать воду и тушить свет.

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

Swappiness не измеряется в % озу.

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

Система на SSD, своп и фотографии на HDD.

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

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

Свап не даёт больше памяти, потому что диск медленнее в тысячи раз по iops. Он максимум годится чтобы скинуть в него неиспользующиеся но открытые приложения и данные(которые и так можно было бы закрыть), а если они используются будет жопа.

А зачем закрывать, если можно скинуть в своп? Для этого своп и нужен. Причём даже если памяти хватает. В любом приложении есть куча памяти, которая выделилась, но реально не используется (или с вероятностью 99% не будет использоваться). Со временем ОС перекидывает эту память в своп где она и будет лежать до завершения работы приложения, а физическая память будет задействована для более ценных данных, даже для тех же файловых кешей.

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

Система на SSD, своп и фотографии на HDD.

Ну вот, это значительно лучше.

fornlr ★★★★★
()

Linux 4.10 (комментарий)

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

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