Redis
 sql >> база данни >  >> NoSQL >> Redis

Какво е tcp-backlog в redis.conf

Размерът на tcp-backlog е на "пълна опашка за връзка" (завършено тристранно ръкостискане, каквото е описано тук) или "непълна опашка за връзка"?

tcp-backlog е размерът на пълната опашка за свързване . Всъщност Redis предава тази конфигурация като втори параметър на listen(int s, int backlog) обадете се.

@GuangshengZuo вече имаше добър отговор на този въпрос. Така че ще се съсредоточа върху другия.

Ако това означава "пълна опашка за връзка", тогава защо трябва да вдигам tcp_max_syn_backlog, който ограничава размера на непълна опашка за връзка?

Цитат от документа, който споменахте:

Реализацията използва две опашки, SYN опашка (или непълна опашка за свързване) и опашка за приемане (или пълна опашка за свързване). Връзките в състояние SYN RECEIVED се добавят към опашката SYN и по-късно се преместват в опашката за приемане, когато състоянието им се промени на ESTABLISHED, т.е. когато се получи ACK пакетът в 3-посочното ръкостискане. Както подсказва името, повикването за приемане след това се изпълнява просто, за да се консумират връзки от опашката за приемане. В този случай аргументът backlog на системното извикване на слушане определя размера на опашката за приемане.

Можем да видим, че елементите в complete connection queue се преместват от incomplete connection queue .

Ако имате голям somaxconn с малък tcp_max_syn_backlog , тогава може да НЯМАТЕ достатъчно елементи, които да бъдат преместени в complete connection queue и complete connection queue може никога да не е пълен. Много заявки може вече да са отпаднали от първата опашка, преди да имат шанса да бъдат преместени във втората.

Така че повишете само стойността на somaxconn може да НЕ работи. Трябва да вдигнеш и двамата.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis срещу RabbitMQ като посредник на данни/система за съобщения между Logstash и elasticsearch

  2. как да съхранявате изображение в redis с помощта на python / PIL

  3. Препоръки за клиентска библиотека на Redis за използване от Scala

  4. Кеширане в Django с Redis

  5. Предайте препратка към екземпляр на Redis към манипулатор на Gorilla/Mux