Bagaimana cara menyesuaikan nginx keepalive_timeout?


12

Saya menggunakan nginx bersama dengan php-fpm ke server situs berbasis mysql yang sibuk. Saat ini saya menggunakan keepalive_timeout = 5, namun saya tidak memiliki ide yang jelas tentang bagaimana menyesuaikannya secara optimal. Jadi hargai petunjuk Anda.

Jawaban:


10

Apa yang perlu Anda sesuaikan untuk dilakukan, atau lebih tepatnya: apakah Anda melihat ada masalah dengan mengaturnya?

Tidak ada jawaban satu ukuran yang cocok untuk semua; jika sebagian besar browser klien dapat memuat semua sumber daya pada halaman dalam 5 detik maka 5 detik baik-baik saja, tetapi itu sepenuhnya tergantung pada kebutuhan aplikasi Anda - jika server nginx Anda berfungsi sebagai proxy terbalik untuk Exchange ActiveSync, misalnya, Anda ingin itu menghidupkan sampai setengah jam.


Yah, saya mencoba untuk meminimalkan beban server (yang cukup tinggi pada waktu pilih), dan saya kira mengoptimalkan keepalive_timeout sebagian dapat berkontribusi untuk tujuan ini. Selain itu hanya rasa ingin tahu yang sehat :)
alfish

1
Tentu - jadi, cukup "serendah mungkin tanpa menendang sebagian besar klien sebelum mereka memuat halaman" - jadi jika halaman Anda memuat di bawah satu detik untuk sebagian besar klien Anda, maka batas waktu 1 detik akan baik-baik saja. Tetapi, kecuali batas waktu Anda jauh, jauh lebih tinggi dari 5 detik, maka kemungkinan besar penyebabnya adalah beban server.
Shane Madden

Itulah intinya. Bagaimana saya bisa menentukan waktu buka halaman, mengingat perbedaan waktu buka halaman (ada yang lebih berat dari yang lain), kecepatan koneksi pengunjung, dll.
alfish

Hanya kasar itu. Beberapa detik, satu atau lain cara tidak mungkin membuat perbedaan besar dalam beban, jadi jangan ragu untuk memperkirakan tinggi - tapi sekali lagi, versi baru koneksi TCP (bahkan dengan jabat tangan SSL, jika berlaku) untuk klien yang memuat lambat tidak akan membuat perbedaan besar dalam kecepatan pemuatan keseluruhan.
Shane Madden

1
@ShaneMadden, bahwa 5 detik bukan umur koneksi, tetapi hanya batas waktu selama server menunggu permintaan lain hingga keepalive_requests. Jadi tidak penting berapa banyak waktu yang diperlukan untuk memuat halaman penuh, hanya untuk html sampai browser mulai mengambil gambar / css ... BTW maks. koneksi waktu tetap terbuka hampirkeepalive_timeout*keepalive_requests
Marki555
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.