В основном использую debian, но захотелось уйти на более консервативную систему типа OpenBSD, видимо старею :) и решил посмотреть как там сказывается загрузка процессора на диск. Для этого просто запустил три dd:
dd if=/dev/wd0c of=/dev/null bs=1mи ещё iostat 1 и top
Все прекрасно работает, после чего запускаю:
dd if=/dev/urandom of=/dev/null
И тут вижу, что скорость чтения с диска упала с 22Мб/с до 0.9Мб/с, расход процессора первыми тремя dd тоже сократился, весь процессор съедается последним dd. Это особо не удивило, интересное дальше.
Делаю :
renice 20 для последнего dd - картина не изменилась,
делаю :
renice -20 для первых трёх dd, но и это не добавило им процессора и не увеличило скорость чтения. В качестве проверки работоспособности приоритетов делаю renice -20 для dd, читающего urandom, и OpenBSD полностью умерла, и мышь, и виртуальные терминалы...
Это была OpenBSD с livecd bsdanywhere46-amd64. Я задумался, это у всех BSD так?
Попробовал те же эксперименты на рабочей Mac OS X 10.6.3 - renice не сказался ни на dd ни на системе, но и запуск на чтение из urandom не сократил скорость чтения с диска.
Записал livecd frenzy-1.3-ju-release-rus с FreeBSD 8.1, запустил - аналогичная картина как и на маке. При этом общая скорость чтения с диска почти в два раза меньше когда с диска читает больше одного dd.
Те же эксперименты на Linux 2.6.35 (Debian amd64 с пересобранным для большей отзывчивости ядром libre) дают следующие результаты: запуск на чтение из urandom не сокращает скорость чтения с диска, общая скорость чтения с диска не падает из-за более одного dd, renice 20 для первых dd плюс renice -5 для читающего urandom снижает общую скорость чтения диска с 31Мб/с до 5Мб/с, то есть с помощью задания приоритетов можно вполне регулировать и загрузку процессора и загрузку диска. renice -20 для читающего urandom делает систему заметно тормозящей.
В BSD системах есть какая-то отдельная команда для регулирования того насколько процесс может использовать диск и renice этого не касается в принципе?
Второй вопрос, это нормально что в OpenBSD резко падает скорость чтения с диска при загрузке процессора?