Я запускаю приложение на основе hadoop (hadoop 1.2.1
), где я обнаружил узкое место жесткого диска; мониторинг IOPS жесткого диска с iotop
привело к ~ 160 МБ / с, это была скорость записи, которую я получил при тестировании диска с dd
.
Чтобы устранить узкое место, я смонтировал всю HDFS-файловую систему hadoop и вывод картографических файлов на tmpfs
с помощью:
mount -t tmpfs -o size=5G none /app/hadoop
/app/hadoop
здесь хранится HDFS, а также промежуточный вывод картографов. Входной набор данных в HDFS составляет 680 МБ, выходной - 318 МБ, а общий вывод картографов составляет 2,30 ГБ; все это разделено на 2 узла данных / трекеров задач, поэтому у меня достаточно места в ОЗУ для правильного запуска и выполнения приложения.
В этой настройке я пытаюсь измерить количество операций ввода-вывода в секунду для этого каталога, а именно скорость записи. Как я читал в этой теме, традиционные инструменты мониторинга не будут работать с tmpfs
, не являясь блочным устройством. Как я мог измерить скорость записи?
Такие решения, как использование pv
, как предлагается в другом потоке, к сожалению, не сработает; изменение исходного кода hadoop не является жизнеспособным вариантом и pv
создает свои узкие места при записи в ОЗУ, как я измерял с помощью dd
.