Назад | Перейти на главную страницу

Как я могу измерить количество операций ввода-вывода в секунду RAM / tmpfs для конкретного приложения?

Я запускаю приложение на основе 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.