Что происходит в команде
sudo dd if=/dev/zero of=/dev/null bs=500M count=1.
Куда вообще идут нули и что вообще происходит? Скорость 905 МБ / с
Если я перехожу на ramdisk, скорость составляет всего 388 МБ / с. И если я dd
к своему HDD скорость только 63,2 МБ / с
/dev/null
является хорошим местом для тестирования / синхронизации операций чтения ./dev/zero
является хорошим источником для операций тестирования / записи по времени . Объединение этого источника и назначения в одной операции не имеет особого смысла. Даже не уверен, дает ли это какое-либо значимое количество служебных данных.Ответы:
/dev/zero
обеспечивает бесконечный поток нулевых байтов при чтении. Эта функция предоставляется ядром и не требует выделения памяти. Все записи в/dev/null
отбрасываются молча.В результате, когда вы выполняете
dd
, система генерирует 500 мегабайт в нулевых байтах, которые просто отбрасываются. За исключением временного буфера, никакие данные не сохраняются ни до, ни во время, ни после этой операции.Скорость перевода из
/dev/zero
в/dev/null
определяется прежде всего скоростью вашего процессора и соответствующими системными вызовами. (В вашем случае размер буфера составляет 500 МБ, и, следовательно, операция также проверяет скорость вашей памяти.)источник
Я переведу эту команду для вас:
Дублируйте данные (
dd
) из входного файла (if
) из/dev/zero
(виртуальной неограниченной поставки0
) в выходной файл (of
) из/dev/null
(виртуальной раковины), используя блоки размером 500 М (bs
= размер блока), и повторите это (count
) только один раз (1
).В общем, эта команда должна измерять только память и скорость шины. Тем не менее, это может произойти сбой, если у вас нет 500 МБ оперативной памяти. Таким образом, в некотором смысле это также неявно показывает, как быстро ваша ОС может выделять большие куски памяти.
источник
/ dev / null - это черная дыра. Он не является точным для тестирования обычных операций записи, так как фактически не записывает на диск, как это делал бы обычный файл. Вместо того, чтобы записывать головку на диск, данные удаляются сразу после записи на устройство, поэтому они всегда будут быстрее, чем обычные локальные записи.
/ dev / zero аналогичен для чтения. Он не требует движения головы для чтения, это просто неограниченный набор нулевых символов, поэтому он всегда будет читать быстрее, чем любое локальное чтение.
Другими словами, это похоже на тестирование в пустоте и не даст точной картины того, что должны дать обычные локальные операции чтения и записи.
источник
/dev/null
нигде нет; записанные в него данные просто удаляются.Ваш виртуальный диск имеет файловую систему, которую он должен использовать.
dd
должен создать запись в файловой системе и написать в соответствии с правилами файловой системы. Также ваша ОС одновременно использует вашу память для других вещей, поэтому ваша операция записи получает то, что осталось.Не SSD Жесткие диски просто медленные, что тоже правильно.
источник