LINUX.ORG.RU

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

 , , ,


4

4

Современный линукс повернулся к ssd лицом, к hdd задом. То что раньше называлось 12309 разраслось кустистыми ветвями. И раньше-то способов побороть небыло, у одних помогало, у других ухудшало. А теперь вообще непонятно, что делать?

У меня на лаптопе ssd и хард. При обращении к ssd есть фризы интерфейса, но он работает быстро и быстро отпускает. Но при обращении к харду всё хуже, жёстче и терпения уже не хватает. Но я смиренный, я живу так и терплю, потому что смена всяких там bfq, cfq ничего не даёт.

Лопнуло терпение вчера. Ковырялся в компах с хардом. Один стаааарый десктоп - семпрон с ide хардами замученными. Другой ляптоп - Асус из новых, дешёвых, на i3 каком-то, с терабайтным хардом. На старом запустил Slitaz и стал скидывать файлы с больного харда на здоровый. Работает. Достаточно быстро. При этом система не фризится. А при работе с хардом на лаптопе всё колом становится. Поставил копировать - иди кофе пить, мышь не шевелится, только изредка «размыкает» и начинает работать. Попробовал и Убунту и Манджару. Обе затыкаются. Подумал-подумал и попробовал Slitaz на лаптопе - при работе с хардом ничего не фризится. Ёрш твою мать!!!

Сегодня поеду продолжать копировать/переносить, хотелось бы попробовать разное. Накидайте идей.

Ну и конечно, расскажите мне о моей криворукости, неправильности дистра, лаптопа, переходе на винду и пр.

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

Я бы с удовольствием, но у чела дуалбут. И ему нравится.

Тогда страдать. Совет про ntfs был верный.

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

Насколько побольше? Вот у меня 8 гигов. при включенном свапе комп начинает скидывать туда что-то. По объму не много места занимает, но очевидно, свапит и вытаскивает что-то. От того и фризы.

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

это костыль. А должно работать правильно

Вам шашечки или ехать? Я показал демо, в котором система на зрам с небольшим размером памяти не тормозит и не зависает.

У вас какие-то фантастические запросы, когда можно ПРАВИЛЬНО не свопиться, напихать кучу процессов в малый обем памяти, система при этом не тормозит, не зависает, и никого не убивает.

hakavlad ★★★
()

не знаю, зачем вообще в 2к19 иметь хард на рабочем терминале и прочие атавизмы, когда нормальные соврменные системы вообще делаются ro образом, где и в /etc не поправишь ничего, неговоря уже о прочем корне фс, зато и не сломаешь - что из обновления получили то и установлено, хех

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

а софт ставится флетпакподобным всяким в далекие /usr/local/ песочницы как минимум, а терминал это расширение в хроме вообще html страница

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

Я так понял, что ты там демонстрируешь, как браво у тебя процессы хрома схлопываются, не?

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

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

С такими вопросами тебе в код ядра.

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

ты там демонстрируешь, как браво у тебя процессы хрома схлопываются

2 момента: ситема глубоко засвопилась, но это не мешает работе. Больших тормозов нет. 2. При исчерпании памяти система может зависать https://www.opennet.ru/opennews/art.shtml?num=51231 но с демоном не зависает.

Нужно понять, что он скидывает в своп

сценарий oom-sort из пакета nohang поможет тебе увидеть степень завопленности каждго процесса, и отсортировать процессы по размеру VmSwap. Например:

$ oom-sort -s VmSwap -l0
oom_score oom_score_adj  UID   PID Name            VmRSS   VmSwap
--------- ------------- ---- ----- --------------- ------- --------
      110             0 1000 20532 firefox-esr      1887 M     60 M 
        3             0 1000  2978 dolphin            16 M     45 M 
        2             0 1000  1253 caja               10 M     39 M 
        2             0 1000 20363 kate               14 M     34 M 
       27             0 1000 22020 Web Content       452 M     27 M 
        4             0    0  1023 Xorg               54 M     21 M 
        1             0 1000  1451 gvfsd-metadata      2 M     21 M 
        2             0 1000  1259 mate-panel         18 M     18 M 
        1             0 1000  1310 wnck-applet        15 M     10 M 
        2             0  110  1029 tor                28 M     10 M 
        0             0 1000 21224 kate                7 M      9 M 
        0             0    0 22949 pcmanfm             3 M      8 M 
        0             0 1000  1906 klauncher           4 M      8 M 
        0             0 1000  4230 kded5               6 M      8 M 
        0             0 1000  2964 kactivitymanage     6 M      8 M 
        0             0 1000 20423 kate                6 M      7 M 
        0             0 1000 20397 kate                6 M      7 M 
        0             0 1000 21945 kate                7 M      7 M 
        1             0 1000 10013 mate-system-mon    14 M      7 M 
        0             0 1000  3969 leafpad             3 M      7 M 
        1             0 1000  1377 clock-applet       11 M      7 M 
        0             0 1000  1269 mate-volume-con     4 M      6 M 
        1             0 1000  1244 mate-settings-d    12 M      6 M 
        0             0 1000  1177 mate-session        6 M      6 M 
        0             0 1000  3030 kuiserver5          6 M      6 M 

И советы поставить зирам не помогают.

Какие настойки zram использовал? Какой алгоритм сжатия, какой disksize?

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

нормальные соврменные системы вообще делаются ro образом, где и в /etc не поправишь ничего, неговоря уже о прочем корне фс

Fedora Silverblue - не нормальная система.

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

ситема глубоко засвопилась, но это не мешает работе. Больших тормозов нет.

А то, что с убитым процессом я потеряю всю проделанную работу, не напрягает? У меня своп периодически наполняется действительно по нужде, а не от того, что я открыл 50 вкладок с рандомными сайтами для эксперимента.

Вчера я тому челу, кроме всего прочего и Мартыныча, настраивал Cura для 3д печати. В лаптопе памяти 4 гига, из них 3 отъела кура, пока генерировала ему путь. Вот представь ситуацию, я настроил ему по твоему рецепту, куру грохнуло и я ему такой «зато смари, никаких тормозов небыло!!!» Так чтоли?

А за мониторинг свапа, спасибо, посмотрю.

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

zswap сработал. Никаких фризов. Даже окно взял и тягал из стороны в сторону

Зрам дает ровно такой же эффект, что и продемонстрировано на видео.

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

А то, что с убитым процессом я потеряю всю проделанную работу, не напрягает?

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

Вот представь ситуацию, я настроил ему по твоему рецепту, куру грохнуло и я ему такой «зато смари, никаких тормозов небыло!!!»

Вот представь ситуацию, ты ничего не настроил ему по моему рецепту, куру не грохнуло юзерспейсным киллером, система зависла. И ты такой «зато смари, никаких убийств небыло!!!» Так чтоли? Или ядро само убьет эту куру после некоторого подвисания. Это лучший вариант?

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

Вот представь ситуацию, ты ничего не настроил ему по моему рецепту, куру не грохнуло юзерспейсным киллером, система зависла.

Но ведь не зависла же? Хотя протормаживало конкретно. Но работа была сделана. В случае с зирамом и твоими наёмными киллерами оно бы не выжило бы.

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

Но ведь не зависла же?

Потому что память и своп не закончились еще.

В случае с зирамом и твоими наёмными киллерами оно бы не выжило бы.

Выжило бы точно также.

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

Кстати, тут ещё вопрос про видеопамять. На интелях же берётся рабочий рам, да? До двух гигов забирается, да?

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

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

Ничего не знаю про видеопамять, вопрос не по адресу.

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

Как только начинает сбрасывать на хард - жёсткие фризы.

Покажи вывод

lsblk -t
hdparm -I /dev/sd[a-z]
Создай на диске раздел, в 2-4 раза превышающий объём памяти со свопом вместе (32 Гб, например, или больше) и запусти
dd if=/dev/urandom of=/dev/hdd99 bs=16m
где /dev/hdd99 - созданный раздел, а bs=16m - размер аппаратного кеша на диске
Напиши, как система вела себя во время записи на диск.

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

lsblk -t

sda            0    512      0     512     512    1 mq-deadline      64 128    0B
├─sda1         0    512      0     512     512    1 mq-deadline      64 128    0B
├─sda2         0    512      0     512     512    1 mq-deadline      64 128    0B
├─sda3         0    512      0     512     512    1 mq-deadline      64 128    0B
└─sda4         0    512      0     512     512    1 mq-deadline      64 128    0B
sdb            0    512      0     512     512    0 mq-deadline      64 128    0B
├─sdb1         0    512      0     512     512    0 mq-deadline      64 128    0B
└─sdb2         0    512      0     512     512    0 mq-deadline      64 128    0B

hdparm -I /dev/sd[a-z]

https://pastebin.com/tcDa3njd

С выделением места на моём харде проблема. Поэтому большого файла не получится.

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

С выделением места на моём харде проблема

Вот для таких случаев zram особенно полезен: не требует своп-файла или своп-раздела на диске, можно экономить место.

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

Она сжимает страницы перед помещением их в SWAP и только.

Сжимает страницы в кеше. Но когда помещает, расжимает.

https://unix.stackexchange.com/questions/131243/is-zswap-eligible-to-reduce-swap-io

«During resumed writeback, zswap decompresses the page, adds it back to the swap cache, and schedules writeback into the swap slot that was previously reserved»

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

Насколько побольше? Вот у меня 8 гигов. при включенном свапе комп начинает скидывать туда что-то.

Должно бы быть достаточно. У меня больше 6 не встречается. Может тогда рабочий процесс у меня скромнее. Но, бывает, что и FF запущен, и схемы в lodraw правлю.

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

Нету у них целостного понимания своего же продукта и, как следствие, система работает кое как

Нормально всё работает. Просто раньше у тебя лимиты были в МГц, а теперь в ваттах.

devl547 ★★★★★
()

XFS у меня мегабыстро работает на харде по сравнению с другими ФС.

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

поясни как ребёнку.

А! ещё! Поправьте если я опять вру, но вне помнится, что раньше когда заполнялась память, то он (линукс) сначала сбрасывал кэши, а потом только начинал лезть в свап. Может это поменялось?

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

Смотрел специально, топом. Свободная память ещё есть, но в какой-то момент он лезет в своп и ровно в этот момент начинаются тормоза графические.

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

поясни как ребёнку.

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

А процессор стал дофига умным, чтоб выжирать эти лимиты потребления без остатка, и сам задирает частоты и напругу когда надо.
И ещё - оверские материнки могут сообщать процессору «чувак, у нас тут VRM 100500 ватт выдержит и пока температуры в норме. ни в чём себе не отказывай».

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

Нет, оно и раньше так было.

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

в какой-то момент он лезет в своп и ровно в этот момент начинаются тормоза графические.

Своп на харде?

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

Да. Объясни, как многозадачная, многоядерная, многопоточная система вдруг в едином порыве метается вся в этот процесс? Я пробовал и консольными утилитами. и cp и mv. Копирует, копирует и вдруг стучится в своп и тут же намертво всё.

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

ДА ВЫЖ ВСЕ ВРЕТИ!!!1

АМД СВЕТАЯ КОРПОРАЦЫЯ И ВСЕ У НИХ ВСЕГДА ЛУДШЕ И ДИШЕВЛИ!111

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

Чё «как»? У ядра полный контроль над юзерспейсом, оно может всё заморозить когда хочет. Когда кончается память, оно просто берёт и останавливает выполнение всех процессов, чтобы те не выжрали ещё больше памяти. А потом идёт пытаться высвободить памяти.

anonymous
()

Писал уже ранее, поменяй планировщик i/o для ssd и hdd

создай файл 60-ssd-scheduler.rules

ACTION==«add|change», KERNEL==«sd[a-z]», ATTR{queue/rotational}==«0»,ATTR{queue/scheduler}=«noop»

ACTION==«add|change», KERNEL==«sd[a-z]», ATTR{queue/rotational}==«1»,ATTR{queue/scheduler}=«cfq»

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

Проверь какой у тебя стоит:

cat /sys/block/ТИП ДИСКА sda,sdb,sdc, etc/queue/scheduler

noop deadline[cfq] - что в скобках в убунте идет по дефолту.

В CFQ каждому процессу присваивается собственная очередь, и каждой очереди присваивается квант времени (timeslice). Планировщик ввода/вывода по кругу обходит каждую очередь и обслуживает запросы из очереди до тех пор, пока не будет исчерпан лимит времени (timeslice) или не останется запросов в этой очереди. В последнем случае CFQ планировщик будет ждать, по умолчанию 10-мс, нового запроса из очереди. Если ожидание было напрасным, то планировщик переходит к следующей очереди.

В рамках каждой очереди процесса, синхронизированные запросы (как, например, читающие) имеют приоритет над не синхронизированными запросами. Таким образом, CFQ способствует чтению и предотвращает проблему writes-starving-reads.

Собстевнно из-за него я и наблюдал фризы а то и подвисания de при копировании с флешки на не ссд хард большого количества файлов с большим объемом.

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

Спасибо за ваше js-мнение, оно очень важно для нас.

anonymous
()
14 марта 2021 г.
Ответ на: комментарий от Exmor_RS

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

Lock executables and shared libraries in memory to improve system responsiveness under low-memory conditions

https://github.com/hakavlad/prelockd

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

>> Вот у меня 8 гигов. при включенном свапе комп начинает скидывать туда что-то. По объму не много места занимает, но очевидно, свапит и вытаскивает что-то. От того и фризы.

> Это не костыль, а правильное Ъ решение. Таково мнение разработчиков ядра.

У меня Win2000 установлена в виртуалку. Уже в момент запуска системы, память ещё и не думает заканчиваться, а своп уже используется. Мне бы хотелось, чтобы своп начинал использоваться ровно в тот момент, когда кончился последний байт ОЗУ. Но может быть, Windows знает лучше - вдруг в своп закидывается редко используемая информация.

Ну и в любом случае, это происходить прозрачно и не влияет на производительность. Почему-то.

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

Народ, а вы понимаете, что пишете в тему двухлетней давности? Не то, чтобы проблема хардов и свапов исчезла, но у меня уже даже нет того компа и харда.

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

Думаю разумный вариант - это возможность обнулять грязные байты в течение нескольких секунд. Скорость записи на флэшку - 10 M/c.

Таким образом, максимальное разумное значение для грязных байт - десятки мегабайт. Впрочем, не похоже, что меньшеие значения создают проблемы.

vm.dirty_bytes = 16000000
vm.dirty_background_bytes = 2000000

– неплохие значения в любом случае.

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

у меня уже даже нет того компа и харда

Какое это имеет значение?

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

Если памяти ещё достаточно, зачем в свап лезть? И если свапит, то что?

В своп лезет, потому что нехватка свободной памяти. Свопит анонимные страницы.

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