Forum » Programiranje » uWSGI config | Pohitritev Python web aplikacije
uWSGI config | Pohitritev Python web aplikacije
HotBurek ::
Evo, sem malo potestiral uwsgi config in prišel do ugotovitve, da property processes "občutno" pohitri response time.
Primerjal sem processes = 1 in 8.
Dokumentacija: https://uwsgi-docs.readthedocs.io/en/la...
Pri processes = 1 gre vse ena po ena; šele ko se prvi response konča, se lahko naslednji request začne. Kar dosti premza loudanje CSS/JS fajlov po tem, ko se vrne prvi HTML response. V mojem primeru je response time nekje 300~400ms in za vsak CSS/JS file se toliko ms doda.
Pri processes = 8, pa se lahko reuqesti izvajajo vzporedno. Po prvem HTML responsu, se lahko naredi več hkratnih requestov (CSS, JS ...) in se loudanje celotne strani pohitri. Od oka v mojem primeru 30~40% hitreje oz. pol sekunde prihranka na sekundo in pol.
Takole se vidi v browserju:
Gut tool je tudi uwsgitop, kjer se da delat monitoring uwsgi requestov.
https://github.com/xrmx/uwsgitop
Tool se požene tako: /usr/bin/python3.7 /home/user1/uwsgitop http://127.0.0.1:1717
(Ob predpostavki, da je v configu vnešen stats in stats-http, ter da je master nastavljen na true.)
Tole je test z ab tool-om (apache2-utils), prikaz CPU obremenitve (htop), ter uwsgitop monitor. Kul je, ker se requesti enakomerno razdelijo na 8 procesov.
Vrednost 8 za processes sem dal po občutku (CPU je 2 x 4 jedra). Testiral sem še processes = 64 in processes = 8, threads = 4, pa so bili rezultati isti, kot če je proc=8, thre=0.
Tole je primerjava ab testrun-ov, kjer je config processes = 1 (levo, 3 req/sec), ter 8 (desno, 19 req/sec). Se prav 6 kratna pohitritev ob 100% load-u.
Ter sample uwsgi config, če kdo potrebuje.
Primerjal sem processes = 1 in 8.
Dokumentacija: https://uwsgi-docs.readthedocs.io/en/la...
Pri processes = 1 gre vse ena po ena; šele ko se prvi response konča, se lahko naslednji request začne. Kar dosti premza loudanje CSS/JS fajlov po tem, ko se vrne prvi HTML response. V mojem primeru je response time nekje 300~400ms in za vsak CSS/JS file se toliko ms doda.
Pri processes = 8, pa se lahko reuqesti izvajajo vzporedno. Po prvem HTML responsu, se lahko naredi več hkratnih requestov (CSS, JS ...) in se loudanje celotne strani pohitri. Od oka v mojem primeru 30~40% hitreje oz. pol sekunde prihranka na sekundo in pol.
Takole se vidi v browserju:
Gut tool je tudi uwsgitop, kjer se da delat monitoring uwsgi requestov.
https://github.com/xrmx/uwsgitop
Tool se požene tako: /usr/bin/python3.7 /home/user1/uwsgitop http://127.0.0.1:1717
(Ob predpostavki, da je v configu vnešen stats in stats-http, ter da je master nastavljen na true.)
Tole je test z ab tool-om (apache2-utils), prikaz CPU obremenitve (htop), ter uwsgitop monitor. Kul je, ker se requesti enakomerno razdelijo na 8 procesov.
Vrednost 8 za processes sem dal po občutku (CPU je 2 x 4 jedra). Testiral sem še processes = 64 in processes = 8, threads = 4, pa so bili rezultati isti, kot če je proc=8, thre=0.
Tole je primerjava ab testrun-ov, kjer je config processes = 1 (levo, 3 req/sec), ter 8 (desno, 19 req/sec). Se prav 6 kratna pohitritev ob 100% load-u.
Ter sample uwsgi config, če kdo potrebuje.
[uwsgi] # plugins plugins = cgi # socket socket = 127.0.0.1:1234 # cgi part cgi = /var/www/some-site.cum/ cgi-allowed-ext = .py cgi-helper = .py = python3.7 # processes config master = true processes = 8 threads = 0 # so that process can access nginx created body files uid = nginx # https://stackoverflow.com/questions/54708301/linux-client-body-in-file-only-how-to-set-file-permissions-for-the-temp-file # stats stats = 127.0.0.1:1717 stats-http = true # https://raw.githubusercontent.com/xrmx/uwsgitop/master/uwsgitop
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
- spremenilo: HotBurek ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [JS] Event, ko se stran naloži po "back" gumbu?Oddelek: Programiranje | 2708 (1976) | Spura |
» | Postavitev mySQLOddelek: Programiranje | 2263 (1841) | M01O |
» | Python v WordpressOddelek: Programiranje | 1330 (1125) | Halfdead987 |
» | Kako narediti request z "\" v URL-juOddelek: Programiranje | 2186 (1461) | Horejšio |
» | Apache - localhost JA, IP naslov NEOddelek: Omrežja in internet | 6649 (6508) | ManDriver |