Тестирование производительности IO в [закрытом] Linux

Ну, это не возможно. Никакой способ заставить его звонить .width каждый раз снова. Но можно использовать повышение, конечно:

#include <boost/function_output_iterator.hpp>
#include <boost/lambda/lambda.hpp>
#include <algorithm>
#include <iostream>
#include <iomanip>

int main() {
    using namespace boost::lambda;
    int a[] = { 1, 2, 3, 4 };
    std::copy(a, a + 4, 
        boost::make_function_output_iterator( 
              var(std::cout) << std::setw(3) << _1)
        );
}

Это делает , создают его собственный функтор, но это происходит позади сцены:)

25
задан Shawn Chin 22 June 2012 в 16:47
поделиться

3 ответа

инструмент: fio

ссылка: http://freshmeat.net/projects/fio/

тест ввода-вывода физического диска:

    ./fio examples/disk-zone-profile 

установить параметр: последовательный r / w: rw = чтение или rw = запись случайный r / w: rw = randread или rw = randwrite

18
ответ дан 28 November 2019 в 17:52
поделиться

Тестирование операций ввода-вывода и файловой системы - сложная тема. Ни один инструмент для тестирования производительности не подходит для всех ситуаций. Вот небольшой обзор различных инструментов тестирования:

Блочное хранилище:

  • IOMeter - Широко настраиваемый и позволяет координировать работу нескольких клиентов. Требуется ПК с Windows для приложения координации. Разработано Intel. В Linux возьмите максимальные скорости более старых версий (по крайней мере, 2006.07.27 и ранее) с щепоткой скепсиса, потому что метод отправки не был оптимальным.

Файловая система (синтетическая):

  • FFSB - Тест гибкой файловой системы . Очень удобный тест для Linux. Хорошая настройка нагрузки. Тестирование NFS (net-ffsb) немного неубедительно.
  • Filebench - Чрезвычайно мощный, но изначально разработанный для Solaris. Поддержка Linux плохая.
  • sysbench - В основном инструмент тестирования базы данных, но также базовый инструмент тестирования файловой системы.
  • bonnie - кажется устаревшим.
  • bonnie ++ - порт bonnie на C ++. Легко, но кажется не очень настраиваемым.

Файловая система (рабочая нагрузка):

  • Postmark - Имитирует поведение ввода-вывода почтового сервера. Слишком мало, чтобы говорить о хороших системах ввода-вывода.

Университет Стони Брук и IBM Watson Labs опубликовали в «Transaction of Storage» журнальную статью о тестировании файловой системы, в которой они представляют различные тесты производительности, их сильные и слабые стороны: Девятилетнее исследование тестирования файловых систем и хранилищ . В статье четко указывается, что результаты большинства тестов как минимум сомнительны.


Примечание: Связан ли вопрос с программированием? Может, нет, но, может быть, это так. Я провожу много времени, оценивая производительность ввода-вывода разрабатываемых мной систем. По крайней мере, для меня вопросы о том, как тестировать эти вещи, сильно связаны с программированием. Пожалуйста: не закрывайте все вопросы, которые с вашей точки зрения не связаны с разработкой / программированием. Точка зрения других разработчиков может быть иной.

35
ответ дан 28 November 2019 в 17:52
поделиться

вам нужно указать, что именно вы тестируете, иначе эталонные показатели будут только вводить в заблуждение. Существуют различные аспекты производительности ввода-вывода, которые нужно выбрать для оптимизации, и различные параметры, с которыми нужно играть.

Параметры вашей системы:

  1. устройство хранения данных: HDD, SSD (какой?), Raid (какой?)
  2. файловая система, размер блока, режим журналирования
  3. файловый кэш, пороги загрязнения, объем памяти
  4. планировщик ввода-вывода, его настройки
  5. количество CPU
  6. версия ядра

Ваши тестовые параметры:

  1. производительность чтения или записи?
  2. последовательная или случайная?
  3. 1 поток или несколько?
  4. размер запросов
  5. оптимизация для пропускной способности или задержки запроса?
3
ответ дан 28 November 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: