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

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

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

Я нашел этот ответ о том, как рассчитать производительность записи, которую я выполнил на моих двух локальных дисках, 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:

  • Диск, способный писать со скоростью 281 МБ / с
  • Каждый поток производит 35 МБ / с

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

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

  • Диск, способный записывать со скоростью 98 МБ / с
  • Каждый поток производит 35 МБ / с

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


  • Есть ли другие соображения, которые мне нужно принять во внимание, например, скорости межсоединений и т. д.? (Мои диски подключены с помощью SATA 3)

  • Если приведенный выше анализ верен, могу ли я добавить дополнительные диски, чтобы разрешить выполнение большего количества потоков? Если да, будут ли они совместно использовать межсоединение и, следовательно, ввести верхний предел из-за этого, и если да, то как я могу это вычислить?)

0
задан 27 September 2018 в 01:49
1 ответ

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

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

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

В этом вопросе содержится более подробная информация об использовании научных методов.

1
ответ дан 4 December 2019 в 15:50

Теги

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