Bosh sahifa Wiki Performance testing

Performance testing

Performance testing — dastur yoki tizimning belgilangan yuk ostida tezlik, barqarorlik, sig‘im va resurs sarfini tekshirish jarayoni. U funksiyaning natijasi to‘g‘riligidan tashqari, natija qancha vaqtda va qanday resurs bilan olinishini baholaydi. Maqsad “tizim tez” degan umumiy hukm emas, aniq service-level objective va workload bo‘yicha o‘lchov olishdir.

Talab va workload modeli

Sinovdan oldin foydalanuvchi oqimi, so‘rov turlari, o‘qish-yozish nisbati, payload hajmi va trafikning vaqt bo‘yicha shakli belgilanadi. Faqat bitta yengil endpointni ko‘p chaqirish real tizimni ifodalamasligi mumkin. Login, qidiruv, checkout va background job bir-biriga ta’sir qilishi mumkin.

Talablar o‘lchanadigan shaklda yoziladi: masalan, 500 concurrent user sharoitida muvaffaqiyatli so‘rovlarning p95 latency qiymati 300 ms dan oshmasligi va xato ulushi 0,1 foizdan past bo‘lishi. Throughput, tail latency va correctness birga tekshiriladi. Xatoga tushgan tez javoblar yaxshi performance hisoblanmaydi.

Asosiy sinov ko‘rinishlari

  • load testing kutilgan va cho‘qqi yukni beradi;
  • stress testing tizim chegarasi va buzilish usulini topadi;
  • soak testing uzoq davom etuvchi yukda leak va degradatsiyani aniqlaydi;
  • spike testing keskin trafik o‘zgarishiga javobni o‘lchaydi;
  • scalability testing resurs qo‘shilganda sig‘im qanday o‘zgarishini ko‘radi;
  • volume testing katta ma’lumot hajmi ta’sirini tekshiradi.

Bu nomlar amaliyotda kesishishi mumkin. Muhimi, yuk profili, davomiylik va muvaffaqiyat mezonlari hisobotda aniq bo‘lishidir.

Sinov muhiti

Productionga yaqin CPU, xotira, tarmoq, database hajmi va tashqi xizmat xatti-harakati kerak. Kichik staging natijasini productionga chiziqli ko‘paytirish ko‘pincha noto‘g‘ri, chunki lock, cache, queue va network limitlari nolinear. Tashqi pullik servislar test double bilan almashtirilsa, ularning latency va rate limit xususiyati modellashtiriladi.

Load generator server bilan bir hostda bo‘lsa, resurs uchun raqobatlashadi. Generatorning CPU, socket va bandwidth sig‘imi ham kuzatiladi. Bir nechta generator ishlatilsa, ularning soati sinxron va natija agregatsiyasi izchil bo‘ladi.

O‘lchovlar

Client tomonda latency taqsimoti, throughput, xato turlari va timeout o‘lchanadi. Serverda CPU, memory, garbage collection, thread yoki event loop, connection pool, queue depth va database query vaqti kuzatiladi. Distributed tracing sekin so‘rovning qaysi qatlamda vaqt sarflaganini ko‘rsatadi.

Coordinated omission kabi o‘lchash xatosi generator tizim sekinlashganda yangi rejalashtirilgan so‘rovlarni yubormasa yuz beradi. Natijada eng yomon kutish vaqtlari samplega kirmaydi. Generator modeli open yoki closed ekanini bilish va taklif qilingan yukni alohida qayd etish zarur.

Tahlil va qayta sinov

Grafikda yuk oshishi bilan latency, error va resurs o‘zgarishi bir vaqt chizig‘ida ko‘riladi. Saturation nuqtasi — bir resurs to‘lib, qo‘shimcha yuk throughputni oshirmay latency va queue ni ko‘paytiradigan holat. Profiling bottleneck sababini aniqlashga yordam beradi, ammo profilerning o‘zi overhead keltirishi mumkin.

O‘zgarishdan keyin ayni versiyalangan ssenariy qayta bajarilib baseline bilan solishtiriladi. Cache holati, test data va deploy konfiguratsiyasi o‘zgarmasa, farqni kod bilan bog‘lash ishonchliroq bo‘ladi.

Testning tizimga ta’siri

Performance testi katta trafik, yozuv va tashqi xarajat hosil qilishi mumkin. Productionda o‘tkazilsa, test identifikatorlari oddiy foydalanuvchi metrikasidan ajratiladi, lekin monitoringdan yashirilmaydi. Buyurtma, email va to‘lov kabi qaytarib bo‘lmaydigan amallar sandboxga yo‘naltiriladi. Rate limit, autoscaling va fraud tizimini vaqtincha o‘chirish natijani real holatdan uzoqlashtirishi mumkin; istisnolar hisobotda ko‘rsatiladi.

Bog‘liq tushunchalar

Load testing, Stress testing, Throughput, Percentile, Profiling, Service-level objective