#c #linux #database #performance #io
#c #linux #База данных #Производительность #io
Вопрос:
Я хочу протестировать производительность базы данных и понять, как пропускная способность базы данных (в пересчете на транзакции в секунду) зависит от свойств диска, таких как задержка и изменение ввода-вывода, длина очереди записи и т.д. В идеале мне нужен симулятор, который может быть смонтирован как дисковый том и имеет внутри RAM-диск, встроенный в контроллер, который позволяет устанавливать желаемый профиль ввода-вывода с точки зрения задержки, пропускной способности, стабильности и т. Д. Интересно, есть ли такой симулятор для Linux или как лучше всего написать его на C?
Комментарии:
1. это очень умно, мне нравится вопрос 🙂 Я нашел похожие вещи в ядре для работы в сети (настраиваемая задержка, частота ошибок в битах и т. Д.), И мне понадобились только некоторые дополнительные модули и конфигурация. может быть, есть что-то подобное для обычного ввода-вывода.
Ответ №1:
Я бы начал смотреть на циклическое устройство (losetup) и iostat. В общем, вы можете смонтировать некоторый образ (из ramfs, если необходимо) и выполнить весь ввод-вывод в этом образе
Ответ №2:
Я бы посмотрел на использование функциональности устройства отображения устройств Linux для синтеза дисков, более явно, цели задержки (для замедления / разделения ввода-вывода) и ненадежной цели (для того, чтобы сделать «диск» ненадежным).).