Когда впервые появились твердотельные накопители, существовало распространенное заблуждение, что твердотельные накопители всегда быстрее жестких дисков. Это было совсем не так — даже в те времена с жестким диском можно было легко сделать 125+ МБ/с, единственным требованием было выполнение последовательного чтения или записи. Напротив, последовательная запись на исходные твердотельные накопители часто была медленнее, и скорость чтения также часто не впечатляла.
Короче говоря, :ваш dd тестирует последовательную пропускную способность, тогда как ваш nginx использует произвольный доступ. Жесткие диски имеют очень ограниченную емкость для операций случайного поиска, порядка значительно менее 100 операций в секунду для диска 7,2 тыс. об/мин любого поколения(по сравнению с более чем 10 тыс. IOPS в современных твердотельных накопителях ), что значительно ограничивает общую пропускную способность, если вы зависите от произвольного доступа к файловой системе для своей работы. В настоящее время 100 IOPS настолько медленны, что если бы жесткие диски были «изобретены» сегодня, они, вероятно, были бы отвергнуты как оторванные от реальности.
Поскольку вы обслуживаете видео, где последовательный доступ к большим -файлам встречается чаще, чем в других веб-приложениях, ваши показатели реальной -пропускной способности уже не так уж плохи — 59,96 МБ/с в реальном -жизнь, когда последовательный бенчмарк показывает 117 МБ/с, уже впечатляет. Решение может состоять в том, чтобы перейти на большее количество жестких дисков, использовать жесткие диски с более высокой скоростью вращения для увеличения количества операций ввода-вывода в минуту или перейти на твердотельный накопитель.
|| true
полезен в контекстах, где нас не волнует, завершится ли ошибка командой; в этом конкретном случае, если ~/.alias
не существует, test -s
завершится с ошибкой с нулевым кодом выхода, отличным от -, но мы не хотим, чтобы это имело какие-либо другие последствия. || true
гарантирует, что полный список команд (, включая источник ~/.alias
), всегда завершается с успешным статусом.
Это было бы особенно актуально, если бы .bashrc
включало set -e
, хотя это было бы необычно для сценария запуска оболочки.
Другой способ написать это будет
if test -s ~/.alias; then. ~/.alias; fi
, но это приведет к завершению с ненулевым -кодом выхода, если источник ~/.alias
вызовет ошибку.
См. также Чем полезен шаблон "command || true"?
Параметр || true
гарантирует, что вся команда возвращает состояние «Успех», даже если ./.aliases
возвращает не -нулевое состояние (Сбой ).
Удобно, если вы используетеset -e
(выход при ошибке ).