LINUX.ORG.RU

Как работает io копирования hdd на hdd, если система на ssd и io-шедулеръ=noop

 , , , ,


0

2
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"

получается, шедулеръ == noop, чтобы контроллер SSD, на котором стоит система, сам думал и распоряжался как и что. Это считается разумным.

А вот что в таком случае происходит когда при такой конфигурации идёт копирование с HDD на HDD, подключенных к этой системе? Не тонкое ли при этом возникает, так сказать, место?



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

Перенесите в железо.

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

Спасибо, но там не сказано о том, что происходит и про регрессию тоже. Получается, что если мы хотим улучшить работу системы на SSD настроив в ядре шедулеръ на noop — мы отгребаем при работе с hdd-дисками, так получается?

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

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

Если нужно что-то настроить, для этого есть правила udev, а в крайнем случае - rc.local или подобные механизмы

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

Спасибо, но там не сказано о том, что происходит и про регрессию тоже. Получается, что если мы хотим улучшить работу системы на SSD настроив в ядре шедулеръ на noop — мы отгребаем при работе с hdd-дисками, так получается?

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

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

... не сказано о том, что происходит и про регрессию тоже.

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

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

Не понимаю, а какой тогда дефолтный шедулер должен быть указан в ядре? Опция обязательна.

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

google параметры ядра через загрузчик

а какой тогда дефолтный шедулер должен быть указан в ядре? Опция обязательна.

Тот, что указал мейнтейнер дистрибутива

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

параметры ядра через загрузчик

я не использую никакие загрузчики, зачем они в 2016 году — понятия не имею, уже 2 года гружу ядро напрямую через UEFI, соотв. параметры указываются в ядре при компиляции.

что указал мейнтейнер дистрибутива

у меня нет мантейнера дистрибутива, это гента, я сам настраиваю и собираю ядро под конкретное железо, ты прям странный какой-то.

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

Сделай дефолтным CFQ, сделай правило udev'а, которое всем SSD будет ставить планировщик noop.

# set noop scheduler for non-rotating (SSD) disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
Ну или наоборот, дефолтным сделай noop, а для HDD делай CFQ.

tiandrey ★★★★★
()

При копировании в один поток шедулер не имеет значения, точнее noop явно будет лучшим.

chaos_dremel ★★
()
echo noop > /sys/block/sda/queue/scheduler
echo cfq > /sys/block/sdb/queue/scheduler
echo bfq > /sys/block/sdc/queue/scheduler

Вот и всё.

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

Главное на системный HDD noop не ставить — велика вероятность, что придётся жать reset из-за зависона.

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

И тем не менее, несмотря на его оптимальность, на десктопе не стоит его применять, не имея хотя бы 16 гигов оперативки.

batekman ★★★
()

Попробуй scsi_mod.use_blk_mq=y в параметрах ядра, правда это отключает софтовые дисковые шедулеры.

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

Так он только с cfq работает, разве нет? У меня постоянно интерфейс зависал из-за копирования и ionice не особо помогал.

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