Какво е тестване на съхранение? Видове, Concepts & Пример
⚡ Умно обобщение
Тестването на съхранението проверява дали приложението записва данните си в правилните директории и има достатъчно дисково пространство, за да избегне неочаквани прекъсвания, като същевременно измерва колко бързо реагира базовото хранилище при реалистично натоварване.
Какво е тестване на съхранение?
Тестване на съхранение е вид софтуерно тестване, използвано за проверка дали тестваното софтуерно приложение съхранява съответните данни в подходящи директории и дали има достатъчно място, за да предотврати неочаквани прекъсвания поради недостатъчно дисково пространство. Нарича се още тестване на производителността на съхранението.
Техниката се намира от нефункционалната страна на дисциплината: подобно на други форми на нефункционално тестване, не казва нищо за това дали дадена функция генерира правилния отговор, а всичко е за това дали системата може да продължи да генерира отговори с нарастване на обема на данните и натоварването от входно/изходни операции.
Защо тестване на съхранение?
Паметта е най-бавният слой, до който повечето приложения се докосват, така че слабостта му се проявява навсякъде другаде. Четири причини оправдават специален тестов цикъл.
- Бавното съхранение означава бавно време за реакция, продължителни заявки и по-ниска наличност на приложенията.
- Бавното съхранение е допълнително натоварване за поддръжката на сървърната инфраструктура.
- Помага да се намерят практическите ограничения за съхранение на системата преди внедряването ѝ.
- Полезно е да се разбере как системата реагира, когато хардуерно устройство бъде подменено или надстроено.
Диаграмата по-долу поставя тестването на съхранението в този контекст – приложението, файловата система и физическото устройство се намират на един и същ път и забавяне навсякъде по него достига до потребителя.
Видове тестове за съхранение
Използват се три подхода, които се различават главно по това доколко работното натоварване наподобява реалното приложение.
- Тестване на приложението: Тестване на приложения с примерни заявки в среда, подобна на продукционна.
- Симулация на приложение: Провеждане на тестването с помощта на стандартен софтуер, който се държи подобно на целевото приложение.
- Сравнителен анализ: Провеждане на тестването с помощта на стандартен софтуер за бенчмаркинг, който генерира синтетично, повтаряемо работно натоварване.
Първият дава най-реалистичния резултат и най-малко преносимия; третият дава числа, които могат да се сравняват между различни устройства и доставчици, но казва малко за това как ще се държи самото приложение.
Общо тестване Concepts Участник по време на тестване на съхранението
Всеки от тези три вида се свързва с отделен набор от дейности, както е обобщено по-долу.
| Видове тестове за съхранение | Пример за общи дейности за тестване на съхранение |
| Тестване на приложения | Сравнете времето за отговор на OLTP Сравнете времето за изпълнение на партиди Сравнете постоянните скорости на поточно предаване |
| Симулация на приложения | Тествайте IOPS при пиково съхранение за бази данни Тествайте пиковата пропускателна способност за съхранение за среди за стрийминг на данни Тествайте латентността на съхранението за съобщения или други еднонишкови приложения |
| Сравнителният анализ | Тестване за повреда на данните |
Ключови показатели при тестване на съхранение
Резултатите от съхранението се отчитат чрез малък набор от числа. Четенето на всяко едно от тях самостоятелно е най-бързият начин да се стигне до погрешно заключение, защото те си противоречат.
| метричен | Какво измерва | Където е най-важно |
| IOPS | Операции за четене и запис, извършвани в секунда, независимо от размера | Транзакционни бази данни и малки произволни записи |
| латентност | Времето между началото и завършването на една входно/изходна операция | Пътища за съобщения и еднонишкови приложения |
| магистрала | Обем на данните, преместени в секунда, обикновено в MB/s | Пакетни изпълнения, архивиране и стрийминг натоварвания |
| Дълбочина на опашката | Брой неизпълнени заявки, издадени едновременно | Всяко изпълнение, което трябва да отразява реална паралелност |
Дълбочината на опашката заслужава специално внимание. Издаването на една заявка наведнъж води до точна латентност за единична заявка, но изкуствено ниски стойности за IOPS и пропускателна способност, поради което едно устройство може да изглежда бавно в тест и бързо в производствена среда или обратното.
Как да извършите тестване на съхранението
Тестът за съхранение е надежден само дотолкова, доколкото са надеждни условията, при които е проведен. Последователността по-долу осигурява повторяемост на резултатите.
- Стъпка 1) Определете целта. Решете дали изпълнението доказва готовността на базата данни, намира таван на пропускателната способност или сравнява две устройства. Всяка цел предполага различно натоварване, а смесването им води до числа, върху които никой не може да действа.
- Стъпка 2) Оразмерете набора от данни реалистично. Работен набор, достатъчно малък, за да се побере в кеша, измерва кеша, а не паметта. Съответствайте на обема на производствените данни или поне превишавайте размера на кеша с голяма разлика.
- Стъпка 3) Изберете комбинацията и шаблона за четене/запис. Случайният и последователният достъп се държат много различно на едно и също устройство, както и смесите 70/30 за четене и запис и пакетите само за запис. Вземете сместа от производствения мониторинг, а не от настройката по подразбиране.
- Стъпка 4) Задайте дълбочина на опашката и брой нишки. Те контролират колко паралелизъм достига до устройството, така че ги записвайте с всеки резултат - цифра, цитирана без тях, не може да бъде възпроизведена.
- Стъпка 5) Изчистете кеша и загрейте. Премахнете кешовете на сървъра и устройството между изпълненията, след което отхвърлете първия интервал, така че да се сравняват числата в стабилно състояние, а не тези, получени при първо докосване.
- Стъпка 6) Бягайте достатъчно дълго. Кратките изпълнения крият прекъсването при запис, което се появява, след като SSD изчерпи буфера си за запис. Продължителните изпълнения го разкриват.
- Стъпка 7) Следете целия стек. Записвайте използването на процесора, паметта и мрежата, заедно с броячите за съхранение, така че евентуално претоварване на друго място да не се тълкува погрешно като ограничение на паметта.
- Стъпка 8) Повторете и сравнете. Изпълнете идентичната конфигурация повече от веднъж и запазете лог файловете; отклонението в производителността между компилациите е видимо само спрямо съхранена базова линия.
Тъй като същата дисциплина се прилага за всяко измерване, управлявано от натоварване, тези изпълнения обикновено се планират заедно с тестване на производителността и е планирано преди замразяването на кандидата за освобождаване.
Инструменти за тестване на съхранение
Инструментите се разделят на две групи и повечето екипи се нуждаят и от двете.
- Синтетични генератори на входно/изходни данни. Комунални услуги като например Fio, Iometer и sysbench издават точно описано работно натоварване — декларирани са размер на блока, комбинация от четене/запис, дълбочина на опашката и продължителност, така че изпълнението може да се повтори точно на друго устройство.
- Инструменти за зареждане на ниво приложение. Шофьори като например JMeter упражнете самото приложение, така че хранилището да вижда същия модел на достъп, който реалните потребители създават, включително плановете за заявки и поведението на индексите, които синтетичен инструмент не може да възпроизведе.
OperaСистемните броячи на ting допълват картината. Независимо кой инструмент генерира натоварването, данните за паметта трябва да се прочетат редом с броячите на процесора, паметта и мрежата – няколко техники за тестване на паметта, включително бенчмарк тестване намлява обемно тестване, разчитайте на този пълен изглед, за да интерпретирате правилно резултата.
Грешки при извършване на тестове за съхранение
Повечето невалидни резултати от съхранението tracобратно към малък брой грешки, които могат да бъдат избегнати.
- Мониторинг на производителността на грешния сървър, така че числата описват машина, която не е тествана.
- Сравняване на устройства за съхранение без първо изчистване на кеша на сървъра, което измерва паметта, а не дисковата памет.
- Забравяне да се следи използването на процесора по време на тестване, което крие свързано с процесора затруднение зад симптом, свързан със съхранението.
- Тестване на производителността на съхранението с команди за копиране на файлове, които са еднонишкови, кеширани и неповторими.

