Optimasi Nginx

Pembahasan kali ini cuma mencatat beberapa optimasi yang bisa dilakukan dan seperti biasanya terinspirasi dari pertanyaan mbak Shafira. 😀 Atau saya memang sudah kehabisan ide nulis apa. 😛 Rencananya nanti setiap ada kode yang menarik akan ditambahkan disini.

Dimulai dari 3 perintah yang disertakan dalam pertanyaannya. Dan yang dibawah ini pemahaman saya dari baca dokumentasi dan analisa di Google, silahkan dikoreksi kalau ada kesalahan atau kurang akurat. 🙂

sendfile on; dokumentasi disini: http://nginx.org/en/docs/http/ngx_http_core_module.html#sendfile
Ini fungsinya sesuai namanya dimana pengiriman file statis (ya gambar, video, lagu, pdf dan seterusnya) yang lebih cepat dibandingkan cara yang digunakan Linux dalam transmisi data jaringan. Normalnya akan dibaca dulu dari harddisk kemudian akan ditulis ke socket baru dikirimkan (menggunakan syscall Read & Write), tapi dengan sendfile semua bisa dilakukan dalam memori jadi menyingkat langkahnya.

Tambahan saja, matikan kalau pakai VirtualBox. Kabarnya masih bermasalah.

tcp_nopush on; dokumentasi disini: http://nginx.org/en/docs/http/ngx_http_core_module.html#tcp_nopush
Manfaatnya yang ini agar paket data yang belum sesuai ukuran optimal (berdasarkan MTU) akan ditunda dulu. Dan wajib diaktifkan bersama dengan sendfile.

tcp_nodelay on; dokumentasi disini: http://nginx.org/en/docs/http/ngx_http_core_module.html#tcp_nodelay
Fungsinya malah berkebalikan dengan tcp_nopush dimana paket yang siap akan ditransmisikan sesegera mungkin. Ini karena pada TCP ada delay 0.2s baru dikirimkan supaya mencegah ukuran yang terlalu kecil dan juga mengurangi kepadatan transmisi jaringan. Tapi bisa digabungkan.

Kalau disimpulkan, pertama proses pengiriman file statisnya akan memakai sendfile, kemudian akan ditunggu sampai ukuran yang tepat, dan kalau sudah akan langsung ditransmisikan. Urutan berpengaruh disini.

Tidak ada salahnya kalau dipakai. 🙂

Sumber lainnya yang lebih ahli daripada saya:

  1. https://t37.net/nginx-optimization-understanding-sendfile-tcp_nodelay-and-tcp_nopush.html
  2. http://prog3.com/sbdm/blog/zmj_88888888/article/details/9169227

2 Comments

  1. terima kasih penjelasannya mas chandra, langsung dibuatkan topik tersendiri hehe 🙂
    pertanyaan ini saya buat karna kadang attachment gambar di forum nggak ke load sempurna (xenforo) jadi harus diload ulang biar tampil full, saya nggak tahu mungkin pengaruh koneksi atau setingan nginx masih belum optimal 😀

Tinggalkan Balasan ke Chandra Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *