Затраты на системный вызов в Solaris против Linux - PullRequest
2 голосов
/ 02 апреля 2012

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

Если мы возьмем синтетический тест, в котором файл размером 300 МБ читается с диска в 256-байтовых блоках, это займет значительно больше времени.в солярисе 10 то в линуксе.Тест выполняется следующим образом:

dd if=test.dat of=/dev/null bs=256

Даже если test.dat хранится в файловой системе с отображением в памяти, такой как /tmp, Linux значительно превосходит Solaris с большим отрывом,Похоже, что издержки перехода туда-сюда между пользовательским пространством и пространством ядра значительно выше в Solaris, чем в Linux, даже когда оба работают на одном оборудовании.

У меня два вопроса:

  1. Это какой-то известный недостаток Solaris над Linux?
  2. Есть ли способ настроить Solaris для соответствия номерам Linux, предполагая, что я не могу увеличить размер блока ввода-вывода с 256?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Полагаю, вы сравнили яблоки с яблоками, в результате чего коробки Solaris и LINUX идентичны по производительности / емкости? В любом случае, некоторые ключевые вопросы помогут вам в этом:

1) Если вы запустите команду vmstat 1 во время работы этого dd , какие типы чисел вы получите в окне Solaris 10 против окна LINUX?

2) Сколько времени прошло после этой операции? Я вижу только 2 секунды на моем компьютере под управлением Solaris 10 x86, чтобы сделать это ...

3) Попробуйте использовать полный путь для параметра if (т.е. if = / tmp / test.dat vs if = test.dat ) просто чтобы вдвойне убедиться, что вы используете /tmp.

Шон.

1 голос
/ 02 апреля 2012

Вы должны включить больше информации в свой вопрос.На мой взгляд, ваша проблема связана с файловой системой, а не с операционной системой.XFS позволяет создавать файловые системы с размерами блоков от 512 байт до 64 килобайт, что позволяет настраивать файловую систему для ожидаемого использования.В Solaris файловой системой по умолчанию является xfs, поэтому размер блока в 256 байт не является хорошим параметром, не могли бы вы увеличить его до 512, чтобы посмотреть, что произойдет?

...