Optimasi Nginx

By | August 12, 2019

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

Dimulai dari 3 petunjuk yang disertakan pada 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 diperbandingkan cara yang digunakan Linux pada transmisi data jaringan. Normalnya akan dibaca dulu dari harddisk kemudian akan ditulis ke socket baru dikirimkan (menggunakan syscall Read Write), tapi dengan sendfile seluruh dapat dilakukan pada memori jadi menyingkat langkahnya.

Tambahan saja, matikan kalau gunakan 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 (menurut 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 di TCP ada delay 0.2s baru dikirimkan supaya mencegah ukuran yang terlalu kecil dan pun mengurangi kepadatan transmisi jaringan. akan tetapi dapat digabungkan.

Kalau disimpulkan, pertama-tama proses pengiriman file statisnya akan memakai sendfile, kemudian akan ditunggu hingga ukuran yang tepat, dan kalau telah akan seketika ditransmisikan. Urutan berpengaruh disini.

Tak ada salahnya kalau diaplikasikan. 🙂

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


Sumber https://servernesia.com