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

Анализ требований для записи задач, связанных с процессором, на диск

У меня есть приложение для анализа данных, которое связано с процессором и выдает ~ 35 МБ / с данных на каждый поток выполнения.

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

я нашел этот ответ о том, как рассчитать производительность записи, которую я выполнил на моих 2 локальных дисках, SSD и 7200 об / мин HD.

Результаты следующие:

SSD:

$ time sh -c "dd if=/dev/zero of=testfile bs=1000k count=1k && sync"
1024+0 records in
1024+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.668421 s, 1.6 GB/s

real    0m3.549s
user    0m0.000s
sys     0m0.456s

С синхронизацией это 281 МБ / с.

HD:

$ time sh -c "dd if=/dev/zero of=testfile bs=1000k count=1k && sync"
1024+0 records in
1024+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 8.79985 s, 119 MB/s

real    0m10.122s
user    0m0.004s
sys     0m0.549s

С синхронизацией это 98 МБ / с.


Могу ли я сделать следующие выводы?

Запись результатов на SSD:

Таким образом, я мог одновременно запускать 8 потоков. (281/35 = 8)

Запись результатов на HD:

Следовательно, я мог одновременно запускать 2 потока. (281/35 = 2,8)


При использовании жестких дисков необходимо учитывать время поиска. В действительности одновременная запись на жесткие диски, вероятно, будет очень медленной из-за постоянного поиска жесткого диска.

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

Правильный способ - использовать научные методы, запустить их в системе, измерить производительность. Если производительность недостаточно высока, установите ее на новое оборудование и повторяйте, пока производительность не станет достаточно хорошей.

это вопрос имеет более подробную информацию об использовании научного метода.