Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Apa itu tcp-backlog di redis.conf

Apakah tcp-backlog seukuran "antrian koneksi lengkap" (jabat tangan tiga arah selesai, apa yang dijelaskan di sini) atau "antrean koneksi tidak lengkap"?

tcp-backlog adalah ukuran antrean koneksi lengkap . Faktanya, Redis meneruskan konfigurasi ini sebagai parameter kedua dari listen(int s, int backlog) telepon.

@GuangshengZuo sudah memiliki jawaban yang bagus untuk pertanyaan ini. Jadi saya akan fokus pada yang lain.

Jika itu berarti "antrean koneksi lengkap" lalu mengapa saya harus menaikkan tcp_max_syn_backlog yang membatasi ukuran antrian koneksi yang tidak lengkap?

Kutipan dari dokumen yang Anda sebutkan:

Implementasinya menggunakan dua antrian, antrian SYN (atau antrian koneksi tidak lengkap) dan antrian penerimaan (atau antrian koneksi lengkap). Koneksi dalam status SYN RECEIVED ditambahkan ke antrian SYN dan kemudian dipindahkan ke antrian terima ketika statusnya berubah menjadi ESTABLISHED, yaitu ketika paket ACK dalam jabat tangan 3 arah diterima. Sesuai dengan namanya, panggilan terima kemudian diimplementasikan hanya untuk menggunakan koneksi dari antrian terima. Dalam hal ini, argumen backlog dari syscall mendengarkan menentukan ukuran antrian terima.

Kita dapat melihat bahwa item dalam complete connection queue dipindahkan dari incomplete connection queue .

Jika Anda memiliki somaxconn besar dengan tcp_max_syn_backlog kecil , maka Anda mungkin TIDAK memiliki cukup item untuk dipindahkan ke complete connection queue , dan complete connection queue mungkin tidak akan pernah penuh. Banyak permintaan mungkin telah dibatalkan dari antrean pertama sebelum sempat dipindahkan ke antrean kedua.

Jadi hanya menaikkan nilai somaxconn mungkin TIDAK bekerja. Anda harus membesarkan keduanya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kesalahan fatal:Pengecualian yang tidak tertangkap 'RedisException' dengan pesan 'Server Redis pergi'

  2. Socket.io, Redis Store, dan IE

  3. Redis tidak dapat terhubung dalam beban sibuk

  4. 6 Alat Analisis Memori Redis Gratis Teratas

  5. Bagaimana redis memisahkan beberapa instance pengguna yang berjalan di server yang sama?