NetBSD использует уровни безопасности ядра для определения того, какие операции можно выполнять в работающей системе. Из ссылки:
-1 Постоянно небезопасный режим
- Не повышать уровень безопасности при загрузке
0 Небезопасный режим
- Процесс
init
(PID 1) не может быть отслежен или доступенptrace(2)
,systrace(4)
, илиprocfs
.- Флаги файлов Immutable и Append-only могут быть изменены
- Все устройства могут быть прочитаны или записаны в соответствии с их разрешениями
Примечание: Вы не можете запускать X11 выше этого безопасного уровня
Попробуйте
sysutils/aperture
, если вам это действительно нужно.1 Безопасный режим
- Все эффекты безопасного уровня 0
/dev/mem
и/dev/kmem
не могут быть записаны- Необработанные дисковые устройства смонтированных файловых систем доступны только для чтения
- Неизменяемые и доступные только для добавления флаги файлов не могут быть удалены
- Модули ядра не могут быть загружены или выгружены
- The net.inet.ip. sourceroute
sysctl(8)
переменная не может быть изменена- Добавление или удаление
sysctl(9)
узлов запрещено- Смещение RTC не может быть изменено
- Настройки set-id coredump не могут быть изменены
- Присоединение IP-отладчика ядра,
ipkdb(4)
, запрещено- Запросы на проход устройства, которые могут быть использованы для выполнения необработанного доступа к диску и/или памяти, запрещены
Вызовы iopl
иioperm
запрещены- Доступ к неуправляемой памяти запрещен
2 Режим повышенной безопасности
- Все эффекты уровня безопасности 1
- Необработанные дисковые устройства всегда доступны только для чтения, независимо от того, смонтированы они или нет
- Новые диски не могут быть смонтированы, а существующие могут быть только переведены из режима чтения-записи в режим только чтения
- Системные часы не могут быть установлены назад или близки к переполнению
- Запрещено изменять имя coredump для каждого процесса
- Запрещено изменять правила фильтрации пакетов и NAT
Моя система работала на уровне безопасности 1, поэтому "модули ядра не могут быть загружены или выгружены". Кроме того, установка npf=YES
в rc.conf
не приводит к автоматической загрузке соответствующего модуля ядра. Нельзя понизить уровень безопасности ядра во время выполнения, поэтому возможны следующие варианты:
Очевидно, что последний вариант лучше. Чтобы загрузить модуль ядра при загрузке, необходимо убедиться, что rc.conf
содержит:
modules=YES
Затем отредактируйте (или создайте) /etc/modules.conf
, чтобы он содержал список модулей для загрузки, по одному в строке. В данном случае:
# echo npf >> /etc/modules.conf
Это похоже на проблему производительности диска.
Вы должны получить что-то между 20 МБ/с и 80 МБ/с в зависимости от размера блока, я думаю. Я нашел это старое сравнение 10k дисков, где можно посмотреть, как работают разные диски http://techreport.com/review/5236/10k-rpm-hard-drive-comparison/7 .
Я также нашел тему на форуме dell, где кто-то столкнулся с такой же проблемой: http://en.community.dell.com/support-forums/servers/f/906/t/19475037
Чтобы ответить на ваш вопрос: Нет 5-6 MB/s это не нормально.
Это разумный тест для последовательной записи. Общая производительность жесткого диска должна быть в районе 100 МБ/с. В тайминги следует включить финальную синхронизацию
, поэтому может показаться, что ваш компьютер работает в два раза быстрее.
Вы можете увидеть разброс около +-30 на разных типах дисков. RAID может повлиять на это, но в целом он не должен вызывать значительного замедления, не для последовательной записи. (Возможно, если бы вы использовали conv=sync
).
Ваш сервер не должен выполнять последовательную запись со скоростью 5 МБ/с, это просто неправильно. Обратите внимание, что одной из причин низкой производительности является отказ диска.