Как проверить SSD у хостера?
Сейчас ударными темпами идет модернизация дисковых подсистем практически у любых хостеров. Твердотельные накопители стали существенным рывком в улучшении производительности компьютерного и в том числе серверного оборудования. Дело в том, что диск уже много лет был узким местом, что называется «слабым звеном», в производительности любых информационных систем. Другими словами все остальные составляющие — процессор, оперативная память, системные шины и даже сеть — все уже давно сильно быстрее и производительнее накопителей. SSD дает прирост производительности любого устройства примерно в 3-5 раз. Это значит любые приложения будут запускаться в несколько раз быстрее, иногда даже в десятки раз быстрее.
Итак, хостер предлагает вам две тарифные линейки — SSD и не_SSD. Вы, конечно же, берете SSD. Но как убедиться в том, что хостер выдал действительно SSD? Ведь для работы сайта нет никакой разницы — у вас все будет работать на хостинге с любым диском. То есть, теоретически хостер может вам объявить, что у него серверы на быстрых твердотельных дисках. А на деле продавать мощности на обычных традиционных HDD. И вы, скорее всего, даже не узнаете об этом.
Ведь SSD гораздо дороже обычных дисков. А у хостеров мощности ведь серьезные, им нужно терабайты данных хранить. Представляете, сколько такие системы могут стоить, учитывая, что 1 Гб твердотельного накопителя в примерно в 10 раз дороже 1 Гб обычного диска?
Что такое SSD-boost или flashcache?
Вообще, есть гибридная система. Когда используют связку SSD + HDD. При этом, все данные хранятся на традицонных больших дисках. Есть специальный софт, который настраивает эти диски в особый хитрый массив, где SSD выступает как бы кэшем для любых данных, которые записываются или считываются. В таком массиве мы имеем небольшой SSD, допустим на 120 Гб и за ним большой HDD, на 2 Tb. Такая связка дает скорость чтения/записи как у SSD, но объем, как у HDD. Вот такие дела. При этом, хостер спокойно может вам сказать, что у него все на SSD. Честные хостеры называют это SSD-boost. На работе сайтов это никак негативно не отражается.
Я проверял скорость дисков у десятков различных хостеров. Вы удивитесь, но только 1 из 5 хостеров дает «честный» SSD.
Такие вещи фиксирую скриншотами.
Тесты фейковых SSD некоторых хостеров
Хостер №1
Здесь мы видим всего 30 Мб/с на запись. Это нормальная скорость для обычного HDD. Но у хостера он объявлен как SSD.
Хостер №2
Аналогичная картина. Но скорость чтения уже получше немного. Возможно это случай с flashcache, но очень перегруженный. А скорее всего просто raid массив из обычных HDD. Можно их собирать таким образом, что увеличивается в 1,5-2 раза производительность на чтение.
Хостер №3
Любимый многими хостер. Показывает вообще дикие результаты. Мало того что HDD, так еще и перегруженный обращениями к диску.
Хостер №4
Здесь вообще веселая история. Делал клиенту аудит сервера, были жалобы на тормоза. Дай, думаю, проверю диск.
Вот такая картина. Пишу клиенту так и так — хостер вас нагло обманывает. Клиент бегом в саппорт — оказывается действительно. Клиенту «забыли» включить SSD при переходе когда-то там с тарифа на тариф, понимаете? Переключают, тестируем снова и видим как появился настоящий SSD.
Тесты реальных SSD
Теперь, чтобы понимать разницу, я покажу вам скриншоты тестов действительно SSD.
Вот так это выглядит. Скорость записи свыше 100 Mb/s должна быть. Это минимум для SSD. Это тест с моего рабочего ноутбука, на котором я сейчас пишу этот пост. В нем стоит самый дешевый SSD на 120 Gb. Как видите, скорость работы у него в 4-5 раз быстрее чем у традиционного диска.
А вот тест хостера, который предоставляет реальный SSD.
Вот здесь уж точно настоящий SSD. Вот таким оно и должно быть. Возможно настроен буст, но таки это SSD и жить с этим хостером можно.
Как сделать тест скорости диска у хостера?
Я для этого использую утилиту dd. Она есть в любом linux. Но обращаться с ней следует осторожно, иначе есть риск испортить вообще весь сервер, все данные на нем. Поскольку эта утилита пишет сырые данные в любое устройство или файл, которое ей укажешь.
Итак, для теста записи следует взять поток нулей из специального устройства /dev/zero и направить его в файл, на тестеруемом диске. Любой произвольный файл. Например в папку временных файлов /tmp/test.img
Вот так:
dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=dsync
Такая команда создаст файл в 1 Гб размером и выведет скорость записи.
Сразу же можно проверить и скорость чтения, только здесь опция if должна указывать на созданный файл, а of куда нибудь в пустоту. В линуксах есть такое устройство /dev/null , в него и направим:
dd if=/tmp/test.img of=/dev/null bs=1M count=1024
Но перед этим, нужно сбросить дисковый кэш, иначе файл будет считан за секунду, а вам выведется скорость чтения в Gb/s. Это делается такой командой:
sysctl vm.drop_caches=3
После чего проводим тест чтения второй командой.
Ну и по окончанию нужно удалить тестовый файл, дабы не занимал место:
rm -f /tmp/test.img
Это все сработает только на выделенном сервере или VPS. Причем, не на всяком VPS. Поскольку они различаются еще и по технологии виртуализации. Многие хостеры дают не полноценную виртуализацию (KVM, XEN) а контейнеры (openVZ). Здесь нет доступа к параметрам ядра, а значит не получится сбросить кэш. Придется читать и писать в разные файлы, либо перед тестом чтения подождать несколько часов, пока дисковый кэш перезапишется другими данными. Также довольно сложно проверить скорость на виртуальном (shared) хостинге, поскольку вы не имеете там root доступа. Но утилита dd обычно доступна любому системному пользователю, поэтому можно проверить и на нём, имея доступ по SSH.
Хорошая статья. Добавил в закладки, проверю свои сервера. А что за хостеры-то были? Напиши, очень интересно.
Комментарий на отдельной страницеХостеры известные. Вообще не хочу их сильно светить.
Комментарий на отдельной страницеНо внимательный увидит, всё в скринах.
Кстати, с одним из них я даже общался через онлайн-чат, слал скрины. Получил ответ, что у них это действительно SSD, но якобы он загружен и распределен между клиентами, поэтому такая скорость. Что мол, на обычных hdd скорость по тестам была бы еще медленнее.
Но от этого не легче — даже, если у них такой SSD — в чем его смысл?
Ну я видимо не внимательный. Посмотрел скрины 3 раза, не понимаю кто это такие. Или может плохо смотрю. Если здесь писать не хочешь, то скинь мне на почту пожалуйста.
Комментарий на отдельной страницеСтатья хорошо. Спасибо, в закладки. Никогда не проверял, но теперь беру на вооружение. Потестирую сегодня свои сервера.
Комментарий на отдельной страницеВообще ништяк было бы подскопить базёнку с тестами разных серваков, и свести это в табличку для вебмастерского комьюнити. Чтобы вебмастер выбирающий хостера мог зайти и свериться — ага, вот эти дают «честный» SSD, а вот у этих скорость что-то слабовата, что-то нечисто.
Если кому-то эта идея нравится и будете тестить — кидайте мне скрины, или хотя бы текстовые результаты на мыло ( help@vpsadm.ru ), как подсоберется десяток другой хостеров, запилю такую табличку.
Будем выводить хостеров на чистую воду! :)
Комментарий на отдельной страницезамерил на своем сервере, выдало на запись 106, на чтение 304
Комментарий на отдельной страницезадал вопрос саппорт, почему запись такая низкая, они ответили
что лучше мерить многопоточном режиме вот такой коммандой
fio —name=test1 —blocksize=4k —rw=readwrite —direct=1 —buffered=0 —ioengine=libaio —iodepth=16 —size=1G —numjobs=5 —directory=/test
вот только я не понимаю что это за комманда и что она делает)
при добавлении двойной дефис перевело в тире
Комментарий на отдельной странице106 Мб/с это нормальная для SSD скорость, тут вне подозрений. fio это утилита для тестирования производительности. Да, она вроде как более объективный результат дает. Но ее по умолчанию нет в любом linux. Утилита dd очень старая. Это топорный метод, которого, впрочем, достаточно для примерной оценки скорости диска и уж точно можно отличить SSD от HDD таким тестом. Прелесть ее в том, что её не нужно устанавливать в систему, она уже имеется на любом сервере. Именно поэтому я испоьзую её.
Комментарий на отдельной страницеПро евробайт что скажете? Риали ССД?
Комментарий на отдельной страницеНичего не скажу, не имел дела.
Комментарий на отдельной страницеПроверил свою виртуалку на хетцнере. Показатели аналогичные Вашему тесту. Значит врут немцы наглым образом )
Да, я тоже этому удивился, но за хетцером это водится. Собственно, с него у меня и начались проверки других хостеров. И если кто заметил, среди моих примеров он тоже есть. Но писать в саппорт я не стал, в принципе для моих целей, для которых я использую VPS у hetzner мне достаточно той скорости диска, что они дают. Но сам факт налицо.
Комментарий на отдельной страницеПосле первой проверки (пост выше) написал в поддержку хетцнера просьбу выполнить свои обязательства по предоставлению ssd.
В понедельник с утра написали, что готовы перенести мою виртуалку на другой сервер )).
Через полчаса после моего подтверждения пришло письмо, что сервер перенесен.
Скрин нового теста ниже. Скорость записи увеличилась и чтения увеличилась, но совсем немного
Теперь в раздумьях. Это у них такие диски везде и реально одним диском пользуются много серверов или все же ssd это только обещание маркетологов и ничего больше.
Попробуй https://clck.ru/A5fC6 давно у них сижу. SSD честные, запись около 100, чтение 300
Комментарий на отдельной страницеSSD конечно хорошо, но чаще всего скорость диска имеет минимальное значение для времени отклика сайта. Поэтому стоит подумать, прежде чем бросаться переносить сайты, особенно если их много, и проблем не наблюдается. Я даже зная что у хетцнера не SSD, пока не собираюсь ничего переносить от них, поскольку для меня важна низкая стоимость их VPS и стабильность работы. Скорость приемлемая. Очень редко из-за диска может тормозить сайт.
Комментарий на отдельной страницеСпасибо, что поделились результатами.
Комментарий на отдельной страницеНу во втором тесте это может быть и SSD c такой скоростью. Потому что для обычного диска 30 Mb/s на запись — это потолок. Хотя увеличить на простых HDD в два раза, как раз примерно до такой скорости как у вас во втором тесте, можно с помощью RAID-массивов.
Всем привет от «любимого многими хостера» :)) К сожалению, т.к. мы тут реально не затеганы, пока не получили комментарий на другом ресурсе, не имели возможности на это отреагировать! :(
Немного наших комментариев здесь:
1. Выполненный тест сделан на клиенте с SAS диском, а не SSD (архивный тариф). Кроме того, видимо, в не самое удачное время выполненный, т.к. либо делался общий бэкап ноды, либо просто временная повышенная нагрузка на дисковую систему. Пруф на тариф и на повторный тест на той же самой ноде прикладываем.
http://image.prntscr.com/image/e28615842e634696bf470f94a2036b5b.png
Он существенно лучше, т.к. в любом случае у нас нет ни одного тарифа с обычными HDD, исключительно SAS и SSD.
http://storage1.static.itmages.com/i/16/0922/h_1474558871_4111791_0a996dd572.png
К слову, VPS этой уже больше 2-х лет, разумеется, мы за это время сменили парк, но если клиента устраивает все на текущему тарифе, то это же замечательно?!
2. Выполнили тест на SSD ноде, результаты прикладываем
http://storage1.static.itmages.com/i/16/0922/h_1474558735_3933397_7ba27af047.png
3. Можно взять любой наш EVO -SSD, протестировать и запросить манибэк, сославшись на данный пост (чтобы мы никак не могли подготовиться и что-то подкрутить). Единственное условие, сделать 3-4 теста с интервалом по времени, чтобы опять не попасть в неудачный момент.
4. С методолгией тестирования не согласны, но холиварить не будем :)))
Спасибо за внимание и успехов Вам и Вашим проектам!
BR, Pavel Gavrilin
FASTVPS TEAM
По поводу теганья — как видите, я никого из хостеров явно не обозначил, чтобы не портить им репутацию:)
Что касается клиента, да, я тоже поднял инфу по нему. Уж не знаю как вы нашли концы, потому что я перенес клиента к другому хостеру. Это было в июне. Поэтому даже если я сейчас скину вам IP конкретно этого VPS, скорей всего он у вас уже где-то на другой ноде. Клиент говорил мне, что у него тарифы EVO-6 и EVO-8. На каком-то из них я и делал этот тест. Я зашел на сайт — смотрю эти тарифы — SSD. Поэтому так и думал что SSD. Вполне возможно что и SAS был. У клиента была проблема, что на сайтах TTFB по 3 секунды был.
Способ тестирования указан самый простой, чтоб не нужно было доустанавливать ничего на сервер. В любом случае такой тест показывает то что хотим знать :)
Что ж, спасибо за пояснения и вам всего доброго :)
Комментарий на отдельной страницеСудя по e-mail клиента, это все-таки тот же самый клиент :) IP можете кинуть на почту, why not :)
Комментарий на отдельной страницеСпасибо за интересную статью, сразу же проверил по данной методике свой VPS и сильно удивился. Скорость записи выдало 79,8 MB/s, я выдохнул — вроде как не маленькая. Но скорость чиения мне выдало точно такую же, как и записи. Я сильно удивился, проверил несколько раз — эффект не меняется, скорости колеблются в пределах 0,1 MB/s.
Есть идеи — что бы это могло значить?
Ну значит такая скорость и есть. Что это может значить — я не знаю. Может быть чтение лимитируется хостером, может быть нагружено оборудование, может ещё что-то. А ещё возможно это не SSD, а гибрид (HDD+SSD кэш).
Комментарий на отдельной страницеЧто можно сказать про мой диск, см фото:
отличное время чтения записи, однозначно SSD.
Комментарий на отдельной странице`dd of=/tmp/test.img oflag=nocache conv=notrunc,fdatasync count=0`
Если не получается почистить кэш, как у меня например. Спасибо за статью!
Комментарий на отдельной страницеЯ был немного в шоке, когда после этой статьи решил проверить скорость своих же дисков (я хостинг-провайдер)
(
запись 473 MB/s
чтение 3.8 GB/s
)
Специально не публикую ссылку, чтобы просто похвастаться)
В тарифном плане VPS Hoster указан SSD.. сначала всё было относительно норм, но в последнее время TTFB от 4 до 20(ДВАДЦАТИ, КАРЛ) сек. Перелопачены все конфиги и тут решил проверить скорость диска… и.. припух.. 17.9 Мбит/с ААААА… рыдаю в голосину((( На втором тесте 10.7 Мбит/с… Уныние… Написал в саппорт, обещали перенести… Напишу что получилось!
root@exphone:~# dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=dsync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 59.8746 s, 17.9 MB/s
root@exphone:~# sysctl vm.drop_caches=3
vm.drop_caches = 3
root@exphone:~# dd if=/tmp/test.img of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.66095 s, 161 MB/s
Спустя 10 минут после этого теста сделал еще один
root@exphone:~# sysctl vm.drop_caches=3
Комментарий на отдельной страницеvm.drop_caches = 3
root@exphone:~# dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=dsync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 99.9424 s, 10.7 MB/s
root@exphone:~# sysctl vm.drop_caches=3
vm.drop_caches = 3
root@exphone:~# dd if=/tmp/test.img of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.6391 s, 162 MB/s
root@exphone:~#
Новые замеры после переноса внутри хостера на менее загруженное оборудование..
root@exphone:~# dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=dsync
Комментарий на отдельной странице1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.02795 s, 153 MB/s
root@exphone:~# dd if=/tmp/test.img of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.14362 s, 939 MB/s
Как по мне, не совсем информативно без физической записи на диск.
Комментарий на отдельной страницеЯ использую в тестах флаг conv=fdatasync вместо oflag=dsync, результат заметно ниже.
dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 conv=fdatasync,notrunc