Home > Blogosphere > Tuning Server dengan Load Transaksi yang tinggi [Nginx, uwsgi, Sysctl]

Tuning Server dengan Load Transaksi yang tinggi [Nginx, uwsgi, Sysctl]


Tulisan ini merupakan arsip dan catatan pribadi saya bagaimana mengoptimalisasi server produksi dengan beban transaksi yang sangat banyak.  Langkah pertama adalah memastikan Socket Tuning, terutama pada bagian meningkatkan parameter nilai incoming connection dengan tujuan server produksi ini dapat menampung request dalam jumlah besar, parameter nilai somaxconn inilah yg biasanya dimodifikasi, secara default nilai max conn adalah hanya 128, sekarang kita coba naikkan menjadi 4096, dengan cara menambahkan parameter berikut pada /etx/sysctl.conf

# Increase number of incoming connections
net.core.somaxconn = 4096

Selanjutnya optimalisasi pada Web Server NGINX , dengan menambahkan parameter sebagai berikut;

worker_processes 10;
pid /ttt/nginx.pid;

events {
    worker_connections 1024;
    multi_accept on;
    use epoll;
}

Karena menggunakan UWSGI sebagai middle program penghubung ke aplikasi maka Uwsgi juga perlu dilakukan optimalisasi yaitu dengan menambahkan parameter berikut;

[uwsgi]
master = 2
processes = 100
socket = /ttt/xxx.sock
wsgi-file = app.py
pidfile = xxx.pid
listen = 64000
stats = /ttt/stats.sck
cpu-affinity = 1
max-fd = 20000
memory-report = 1
gevent = 1000
thunder-lock = 1
threads = 100
post-buffering = 1

Pastikan membuka Uwsgi membuka 100 process, jika processor anda lebih mumpuni silahkan ditambahkan lagi nilai processes ini.

  1. No comments yet.
  1. No trackbacks yet.

Leave a comment