Skip to main content

Load Testing Tools: ab va wrk

Kirish

Load testing — bu web server yoki API’ning yuk ostida qanday ishlashini, maksimal imkoniyatlarini va barqarorligini aniqlash uchun amalga oshiriladigan test jarayonidir. Linuxda eng ko‘p ishlatiladigan load testing vositalaridan ikkitasi — ab (ApacheBench) va wrk.


ab (ApacheBench)

ab haqida

ab — Apache HTTP serveri bilan birga keladigan, lekin har qanday HTTP serverni test qilish uchun ishlatiladigan oddiy va kuchli utilita.

O‘rnatish

Debian/Ubuntu:

sudo apt install apache2-utils

Asosiy foydalanish

Oddiy test:

ab -n 1000 -c 50 http://localhost/
  • -n 1000 — jami 1000 so‘rov yuboriladi
  • -c 50 — bir vaqtning o‘zida 50 ta so‘rov yuboriladi

Natijalarni tahlil qilish

ab natijasida quyidagi ko‘rsatkichlar olinadi:

  • Requests per second (RPS)
  • Time per request
  • Transfer rate
  • Failed requests

Amaliy misol

API endpointni test qilish:

ab -n 5000 -c 100 -H "Authorization: Bearer TOKEN" https://api.example.com/v1/data

wrk

wrk haqida

wrk — zamonaviy, yuqori samarali HTTP load testing vositasi. Ko‘p yadroli protsessorlardan to‘liq foydalanadi va Lua skriptlar orqali testlarni kengaytirish mumkin.

O‘rnatish

Debian/Ubuntu:

sudo apt install wrk

Yoki manba koddan:

git clone https://github.com/wg/wrk.git
cd wrk
make
sudo cp wrk /usr/local/bin/

Asosiy foydalanish

Oddiy test:

wrk -t4 -c100 -d30s http://localhost:8080/
  • -t4 — 4 ta thread ishlatiladi
  • -c100 — 100 ta bir vaqtlik ulanish
  • -d30s — 30 soniya davomida test

Natijalarni tahlil qilish

wrk natijasida quyidagilar olinadi:

  • Requests/sec
  • Latency (kechikish)
  • Transfer/sec
  • Connection statistics

Amaliy misol

POST so‘rov yuborish uchun:

wrk -t2 -c50 -d60s -s post.lua http://localhost/api/v1/upload

post.lua — maxsus Lua skript, POST body va headerlarni belgilash uchun.

Lua skript misoli:

-- post.lua
wrk.method = "POST"
wrk.body = '{"name":"test"}'
wrk.headers["Content-Type"] = "application/json"

Foydali maslahatlar

  • Testlarni turli so‘rov soni va ulanishlar bilan bajaring.
  • Server monitoringini parallel olib boring (CPU, RAM, tarmoq).
  • Test natijalarini saqlang va solishtiring.
  • Xatoliklarni va kechikishlarni tahlil qiling.

Xulosa

ab va wrk — Linuxda web server va API’larni yuk ostida test qilish uchun eng qulay va samarali vositalar. Amaliyotda har ikkisini ham ishlatib, natijalarni solishtirish va server konfiguratsiyasini