Sanic adalah salah satu dari banyak webframework yang menggunakan bahasa pemrograman Python. Kalau dicermati sebenarnya nama sanic merupakan pelesatan dari Sonic The Hadehog ya. Yah, apapun itu mereka sama-sama cepat loh.
Sementara untuk Sonic kita tidak bisa mengukurnya karena tentu saja dia itu sebuah karekter imaginer, di lain pihak kita bisa mengukur kecepatan Sanic dengan cukup mudah. Dengan menggunakan WRK tentunya
Baik langsung saja, kita akan membuat sebuah API yang akan mengeluarkan {'hello': 'world'}
dan langsung "menyerang" dengan wrk
-
Pastikan kita memiliki python 3.7 atau lebih tinggi
-
Buat Virtualenv disembarang tempat (sangat tidak disarankan :D) dengan perintah
python3 -m venv sanic
-
Install sanic dengan perintah
pip install sanic
-
Buat sebuah file server.py kemudian isi dengan hal-hal berikut ini
from sanic import Sanic from sanic.response import json app = Sanic(name="coba") @app.route('/') async def test(request): return json({'hello': 'world'}) if __name__ == '__main__': app.run(host='0.0.0.0', port=8000)
-
Jalankan builtin server nya dengan perintah
sanic server.app --no-access-logs -w 8
catatan, di sini kami menggunkan laptop dengan 8 CPU.
Pada tahap ini kita sudah berhasil membuat dan menjalankan builtin server dari Sanic. Langkah berikutnya adalah testing kinerja. Berikut langkahnya
- Install WRK dengan perintah
pkg install wrk-luajit
- Jalankan "serangan" dengan perintah
wrk -c 100 -d 10 -t 8 http://50.50.50.2:8000
. Ingat IP nya disesuaikan ya - Tunggu sampai selesai dan perhatikan berapa
Requests/sec
yang bisa didapat
Ini adalah hasil pengetesan kami
Running 10s test @ http://50.50.50.2:8000
8 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.87ms 5.73ms 175.53ms 98.31%
Req/Sec 8.71k 2.51k 25.00k 59.15%
695978 requests in 10.10s, 74.34MB read
Requests/sec: 68911.31
Transfer/sec: 7.36MB
Ini adalah tulisan kami lainya tentang Python Web Framework .