Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Абстрактные бенчи из ынета

Вопрос конкретно о зависимости IOPS от длины очереди на разных устройствах. FAR приведен был всего лишь как пример приложений, написанных придурками исходя из того, что очереди размером больше 1 нинужны.

Более того, over 80% читателей этого ЖЖ бьют себя пяткой в грудь и говорят что таки не нужны.

Интересно понять, нужны ли, и насколько сильно помогают. Вот некоторые графички:

http://www.tomshardware.com/reviews/ssd-performance-tweak,2911-13.html (SSD)
http://www.storagereview.com/Testbed4.sr (HDD)
http://www.bjorn3d.com/2008/02/highpoint-rocketraid-3120/ (дешевый raid0,1)
http://www.highpoint-tech.com/PDF/RR2340_IOmeter_test-O.pdf (дешевый raid5)
http://tweakers.net/reviews/557/30/comparison-of-nine-serial-ata-raid-5-adapters-last-minute-driver-and-firmware-updates.html (raid подороже)

В дешевых NAS аналогично (на первой ссылке очередь 1, на второй 8):

http://www.tomshardware.com/charts/iscsi-nas/Random-Access-Read-IOPS-QD1,2729.html
http://www.tomshardware.com/charts/iscsi-nas/Random-Access-Read-IOPS-QD8,2732.html

Получается, SSD тоже выигрывают от увеличения очереди, причем аж в 2 раза. Все остальные тоже. Хай-энд СХД вот не нашёл, но сомневаюсь что там чем-то будет отличаться, т.к. они скорее более интеллектуальны в шедулинге очередей, чем менее.

В-общем, я таки Д'Артаньян.

Но вопрос о том, как правильно читать и писать, остается открытым. Разумеется, меня интересует хай-энд нагрузка - т.е. предлагать читать буст это смешно. Датасет терабайты, память гигабайты maxed out, вся память и весь проц отъедены основным приложением и надо ещё что-то читать, но так, чтобы у остальных много цпу не отбирать.

Например, насколько хорошо справляется кеш и сколько цпу отъедает кеширование, стоит ли отключать кеш, чтобы он не разрастался и не высвапливал приложение, когда mmap лучше (не) использовать, удастся ли сколько-нибудь сэкономить, если заменить fgets на что-то более продвинутое и т д.

Подобная выжимка процентиков хороша тем, что она пишется один раз специально обученными людьми, и потом реюзается в виде либы в десятках проектиков и утилит. Разумеется, нужен ассортимент методов в зависимости от характера нагрузки. Что-то вроде IO-аналога Intel Threading Blocks, где разные хитровыебанные реализации многопоточных примитивов, написанные один раз задротами на все случаи жизни с целью сэкономить процентики будущим поколениям.
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment