Yang banyak beredar di seantero jagad maya antara lain adalah membuat REST API dengan Flask atau dengan Django Rest Framework.
Kali ini kami akan mencoba membuat REST API yang sangat simple sekali dengan menggunakan FastAPI. API ini hanya akan mengeluarkan sebuah {'hello': 'world'}
untuk selanjutnya ditest seberapa
besar keluaraanya dengan menggunakan wrk
Pada percobaan kali ini kami menggunakan sebuah virtual machine dengan spek sebagai berikut:
- OS = FreeBSD 13.1
- CPU = 8 Core
- Memory = 8GB
- Storage = SSD 80GB
Langkah-langkah persiapan adalah sebagai berikut:
-
Install beberapa paket dengan perintah
pkg install bash python39 pip39-pip
-
Pastikan bahwa user yang akan digunakan dalam percobaan ini sudah menggunakan bash , bisa lewat mekanisme
chsh
atau bisa langsung saja memanggilbash
-
Buat virtualenv dengan perintah
python3.9 -m venv fastapi
-
Aktifkan virtualenv dengan perintah
source fastapi/bin/activate
-
Install FastAPI dan Uvicorn dengan perintah
pip install fastapi uvicorn
-
Buat sebuah file dengan nama fastserver.py kemudian isi dengan kode berikut ini
from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"Hello": "World"}
-
Jalankan uvicorn dengan perintah
uvicorn --no-access-log --host 0.0.0.0 --workers 8 fastserver:app
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://192.168.0.141:8000
. Ingat IP nya disesuaikan ya - Tunggu sampai selesai dan perhatikan berapa
Requests/sec
yang bisa didapat
Ini adalah hasil pengetesan kami
Running 30s test @ http://192.168.0.141:8000
8 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 41.63ms 1.19ms 67.28ms 76.78%
Req/Sec 289.31 34.69 363.00 62.44%
69267 requests in 30.08s, 9.39MB read
Requests/sec: 2302.96
Transfer/sec: 319.74KB
Begitulah tadi hasil percobaan kami kali ini. Ternyata Sanic lebih unggul jauh dari FastAPI. Tunggu pada percobaan kami selanjutnya
Ini adalah tulisan kami lainya tentang Python Web Framework .