мониторинг скорости чтения/записи данных в хранилище в Linux

Улучшение ответа @n.st, в котором используется тот факт, что элементы изначально отсортированы. Это также немного яснее, на мой взгляд.

#!/bin/bash

elements=(Cr Hf Mo Nb Ta Ti V W Zr)
len=${#elements[@]}

(( a_end = len - 3 ))
(( b_end = len - 2 ))
(( c_end = len - 1 ))
(( d_end = len - 0 ))

(( a = 0 ))
while (( a < a_end )); do
   (( b = a + 1 ))
   while (( b < b_end )); do
      (( c = b + 1 ))
      while (( c < c_end )); do
         (( d = c + 1 ))
         while (( d < d_end )); do
            mkdir "${elements[$a]}${elements[$b]}${elements[$c]}${elements[$d]}"
            (( d++ ))
         done
         (( c++ ))
      done
      (( b++ ))
   done
   (( a++ ))
done

Ключевая часть каждого внутреннего цикла начинается со следующего индекса элемента из окружающего цикла. Это довольно распространенный шаблон для создания всех комбинаций списка элементов.

Время работы:

user@host:~/so$ time./do.sh 

real    0m0.140s
user    0m0.085s
sys 0m0.044s

с

user@host:~/so$ ls -1d Cr* Hf* Mo* Nb* Ta* Ti* V* W* Zr* | wc -l
ls: cannot access 'V*': No such file or directory
ls: cannot access 'W*': No such file or directory
ls: cannot access 'Zr*': No such file or directory
126
0
04.12.2020, 05:29
1 ответ

bonnie++— интересная программа. Это было приятно, потому что он доступен на EPEL и может быть легко установлен черезyum install bonnie++

Из-за того, что я нетерпелив, я не продвинулся далеко с этим, и я нашел следующее более полезным для удовлетворения моих потребностей прямо сейчас. Это было с сайта bonnie++https://www.jamescoyle.net/how-to/599-benchmark-disk-io-with-dd-and-bonnie

time sh -c "dd if=/dev/zero of=[PATH] bs=[BLOCK_SIZE]k count=[LOOPS] && sync"

На самом деле я не запускал это dd, используя timeзаземление, но для всех, кто заинтересован в этом, кэширование диска в Linux может быть проблемой , поэтому для чтения рекомендуется создать его файл на диске размером больше оперативной памяти,затем создайте другой, чтобы очистить все остатки первого файла в ОЗУ, которые могут исказить результаты, затем выполните чтение первого файла. Я подозреваю, что echo 3 > /proc/sys/vm/drop_cachesтакже был бы полезен здесь, чтобы получить хорошие результаты чтения/записи.

1
18.03.2021, 22:45

Теги

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