Linux下Http高并发参数优化之keepalive

 Linux 系统参数设置后,应用服务的并发量并不会出现显著的提升。这是因为应用服务一般都是采用 HTTP 协议,而 HTTP 是一种无状态的、基于请求+响应的协议。也就是俗称的 “短连接”,对应的解决方案是 “长连接”。长连接用到 `keepalive` ,它又分 TCP keepalive 和 HTTP keepalive 。

TCP 的 keepalive 是检查当前TCP连接是否活着。

HTTP的 keepalive 是要让一个 TCP 连接活久点。

TCP keepalive

因为 TCP 的上层调用是 Socket,客户端和服务端都会启动 Socket。如果客户端关闭了 Socket,而服务端不知道,一直会为客户端保持着连接,这样是很浪费资源的。为了解决这个问题,TCP协议规定,当超过一段时间之后,TCP自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,连接可以继续保持,如果对方没有报文返回,并且重试了多次之后则认为连接丢失,应该关闭连接。

Linux 内核包含了对 keepalive 的支持,使用下面三个参数(默认单位为秒)。

# 表示TCP链接在多少秒之后没有数据报文传输时启动探测报文(发送空的报文)
cat /proc/sys/net/ipv4/tcp_keepalive_time 
7200

# 表示前一个探测报文和后一个探测报文之间的时间间隔
cat /proc/sys/net/ipv4/tcp_keepalive_intvl
75

# 表示探测的次数
cat /proc/sys/net/ipv4/tcp_keepalive_probes
9

这些参数是在 /etc/sysctl.conf 文件中定义的,默认文件中没有定义这三个参数,但系统提供的有默认值。可以根据需要进行修改,修改后,执行sysctl -p命令让其生效。

net.ipv4.tcp_keepalive_time = 900
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3

在socket编程时候,可以通过以下参数设置。

TCP_KEEPIDLE: tcp_keepalive_time

TCP_KEEPCNT: tcp_keepalive_probes

TCP_KEEPINTVL: tcp_keepalive_intvl

HTPP keepalive

在说 HTTP keepalive 之前,先理解 HTTP 与 TCP/IP 的关系。我们知道 HTTP 是应用层,是建立在 TCP/IP 协议基础之上的,客户端和服务端通过 TCP/IP 协议建立连接后,就可以进行数据传输,而 HTTP 协议使用了TCP传输HTTP协议的请求(Request)和响应(Response)数据。

这里简化了HTTP(Req)和HTTP(Resp),实际上的请求和响应需要多个TCP报文。

HTTP 连接的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为 “一次连接”。

HTTP 的一次连接相当于调用了 TCP/IP 协议的三次握手建立连接,TCP 协议的多次数据传,TCP/IP 协议 断开连接的四次握手。

可想而知,上面这种原始的方式是多么的低效。为了减少频繁的建立连接和关闭连接,从 HTTP1.1 版本,开始支持了 keepalive 。目前,绝大部分服务框架和浏览器的 HTTP 协议版本默认都是1.1。

设置了 keepalive 。客户端与服务端一旦建立 TCP/IP 连接后,会保持连接一段时间,在这段时间内,HTTP 就可以直接进行数据传输。如果 HTTP 主动告知关闭,或者达到 TCP 关闭的条件,那么 TCP/IP 就会关闭。这也就是 HTTP keepalive 能让 TCP 连接活久点的原因。

如果没有,可以通过设置使其支持。

客户端设置: 在 HTTP 请求头需要增加 Connection: keep-alive 字段。

服务端设置: 要先识别客户端的 Connection: keep-alive 字段,且在 http 的 response 里设置 Connection: keep-alive 字段。

是不是这样设置后,keep-alive 就起到作用呢? 答案是并不一定。这是需要综合考虑服务架构的。我们的应用服务通常会涉及到负载均衡、转发、反向代理等。简化一下架构,就是 Nginx + 应用服务。通常的使用方式如下。

Nginx

keepalive_timeout

Nginx 默认是支持 keepalive的,是通过 keepalive_timeout 设置的,默认值是75s。它表示在长连接开启的情况下,在75s内如果没有 http 请求,则关闭长连接(其实就是关闭 tcp)。

此值可以根据情况进行调整,如果设置过大,则服务器需要长时间保持客户端的连接信息,会存在浪费资源的问题;太小的话,又起不到长连接的优势。

例如:如果客户端平均触发请求的间隔时间在2分钟,那么此值可以设置为3~5分钟;如果间隔时间在30秒,此值可以设置为1~2分钟。

如果客户端的请求间隔时间在10分钟以上,那么此值没有必要调大,设置为2分钟就可以了。客户端一次触发请求,例如点击连接,会发送N个 Http 请求,而这些请求在1分钟内就会完成。所以,将 keepalive_timeout 设置为2分钟,即可以起到N个 Http 请求利用长连接,又可以减少服务器的资源浪费。

keepalive_requests

此值容易被忽略,它是值在 keepalive_timeout 的时间范围内,一个长连接最大允许的请求次数,如果超过此值,也会关闭此长连接。默认值为100。

例如:keepalive_timeout 为2分钟,在2分钟时间内,A长连接发送了101个 Http 请求,那么第101个请求就会重新建立连接,即使长连接时间没有超过2分钟。

此值也应该根据业务情况来定,一般默认值100就够用。

upstream keepalive

Nginx 一般用在反向代理,将请求代理到业务服务上。在设置上也需要注意。

upstream http_backend {
    server 127.0.0.1:8080;
    keepalive 1000;
}

keepalive 是指 Nginx 每个 worker 连接后端的最大长连接数,而不是整个 Nginx 的。 而且这里的后端指的是「所有的后端」,而不是每一个后端。

…

location /http/ {
    proxy_pass http://http_backend;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    …
}

proxy_http_version 指定 HTTP 版本,防止 1.0 版本导致 keepalive 无效。

proxy_set_header 清空将客户端的一些设置,防止导致 keepalive 无效。

Nginx 代理的服务如果是 Tomcat 等容器,也需要 Tomcat 进行长连接的相关设置。

worker_cpu_affinity

Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。cpu是任务处理,计算最关键的资源,cpu核越多,性能就越好。

两核cpu,开启两个进程。

worker_processes  2;  
worker_cpu_affinity 01 10;

两核cpu,开启八个进程。

worker_processes  8;  
worker_cpu_affinity 01 10 01 10 01 10 01 10;

8核cpu,开启8个进程。

worker_processes  8;  
worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;

也可以配置成自动分配的。

worker_processes  auto;  
worker_cpu_affinity auto;

177 Replies to “Linux下Http高并发参数优化之keepalive”

  1. Thanks for the tips on credit repair on your web-site. The thing I would offer as advice to people will be to give up a mentality they will buy at this moment and pay back later. As being a society most people tend to repeat this for many factors. This includes family vacations, furniture, plus items we really want to have. However, you must separate a person’s wants from the needs. When you’re working to fix your credit score you really have to make some trade-offs. For example you possibly can shop online to economize or you can click on second hand suppliers instead of highly-priced department stores to get clothing.

  2. “Can I simply just say what a relief to find somebody who genuinely understands what they are discussing on the web. You actually know how to bring a problem to light and make it important. More people ought to read this and understand this side of the story. It’s surprising you are not more popular since you certainly possess the gift.”
    דירות דיסקרטיות בבת ים

  3. “This is the perfect blog for anybody who wishes to find out about this topic. You know so much its almost hard to argue with you (not that I personally will need toÖHaHa). You definitely put a fresh spin on a topic that has been discussed for a long time. Excellent stuff, just excellent!”
    דירות דיסקרטיות בנתניה

  4. Students commend us for our Akhanda YTT manual – an incredible resources on all aspects of holistic yoga including techniques, yoga philosophy, chakras, yogic lifestyle, Ayurveda and more. In addition to professional photos of each asana, our manual includes the benefits and precautions of each pose and indications on the associated chakra. The philosophy section has reflection questions helping you bring ancient wisdom to modern life. The Ashram offers food, medicine and scholarships to those in need. It also founded a rural school that offers free education to more than 250 under-served children. A percentage of your tuition goes to the Canadian charitable organization Helping Hands for India that raises funds to support the school. Yoga gives us so much – why not give back! https://akhandayoga.com/ Explore your solar and lunar sides, dive deep into the energy body and the tools that expand and guide it to break through barriers and feel your most radiant self. This 12-day intensive training course, live on Zoom, offers a profound personal and professional development opportunity. Join Yogrishi (Vishva-ji) and Yog Sundari (Julia Anastasiou) to explore the chakras and the nadis of the energy body, learn dynamic asana, pranayama, mantra, mudra and meditation to purify and expand the pranic field, as well as tools to support advanced yoga practices. You will also learn Classical Kundalini sequencing and do a teaching practicum so that upon graduation, you will be certified to teach Akhanda’s Classical Kundalini classes.

  5. “May I just say what a relief to discover someone that actually knows what they are talking about online. You certainly know how to bring a problem to light and make it important. More people ought to read this and understand this side of your story. I was surprised that you’re not more popular because you certainly have the gift.”
    חברת ניקיון בתל אביב

  6. “When I originally commented I appear to have clicked the -Notify me when new comments are added- checkbox and from now on whenever a comment is added I receive 4 emails with the exact same comment. Perhaps there is a means you can remove me from that service? Thank you!”
    דירות דיסקרטיות בחדרה

  7. Произвести поисковое продвижение сайта, поднять ИКС сайта, улучшить позиции сайта, привлечь целевой поисковый трафик – все это теперь легко, как никогда. Для этого Вам достаточно воспользоваться размещением ссылок с ИКС от 10 и получить долгожданный результат на сайте: http://proflinks.ru/

  8. GO!!!
    This phrase was said by the first cosmonaut on Earth – Yuri Gagarin. (Yuri Gagarin)
    He was the first astronaut on Earth. He was Russian! …
    Now Russia is becoming a strong country, gas pipelines, a vaccine against COVID-19, an army.
    Is this very reminiscent of the communist Soviet Union?
    How do you think?
    Now we have total control in our country. I am interested in the opinion of foreigners.

    … Альбонумизматико – альбомы для монет

    ПОЕХАЛИ!!

  9. GO!!!
    This phrase was said by the first cosmonaut on Earth – Yuri Gagarin. (Yuri Gagarin)
    He was the first astronaut on Earth. He was Russian! …
    Now Russia is becoming a strong country, gas pipelines, a vaccine against COVID-19, an army.
    Is this very reminiscent of the communist Soviet Union?
    How do you think?
    Now we have total control in our country. I am interested in the opinion of foreigners.

    Албонумисматико

    ПОЕХАЛИ!!

  10. По ссылке https://xn—-dtbbchbcsbfle4bf8a0ipa.xn--p1ai/ опубликована информация о тренере в сфере бизнеса Евгении Гришечкине. Интернет-предприниматель работает уже не первый год и помог сотням людей выйти на новый уровень заработка. На веб-странице можно найти сведения о доходе блогера, а также о его персональных достижениях. Тренер рассказывает о своей миссии — прокачать эффективность любого обратившегося к нему человека. Всего несколько тренингов смогут прокачать нужные бизнесмену навыки и кардинально изменить жизнь.

  11. Ищешь сайт, где можно скачать рингтоны для своего телефона? По ссылке https://ringtonbaza.com/ можно найти желаемое. Посетители веб-ресурса могут не только загрузить понравившиеся композиции, но и добавить в избранное любой звонок телефона. Достаточно пройти не очень сложную авторизацию, чтобы получить доступ к расширенным функциям сайта. Вы можете найти тут, как мелодии-хиты, так и композиции, которые стали популярными за последнее время. Все они сгруппированы по категориям: русские, зарубежные и т. д. Теперь каждый может прокачать свой смартфон, установив рингтон своей мечты!

  12. GO!!!
    This phrase was said by the first cosmonaut on Earth – Yuri Gagarin. (Yuri Gagarin)
    He was the first astronaut on Earth. He was Russian! …
    Now Russia is becoming a strong country, gas pipelines, a vaccine against COVID-19, an army.
    Is this very reminiscent of the communist Soviet Union?
    How do you think?
    Now we have total control in our country. I am interested in the opinion of foreigners.

    Албонумисматико

    ПОЕХАЛИ!!

  13. По ссылке https://grishechkin.ru/ можно найти официальный сайт тренера-бизнесмена Евгения Гришечкина Если вам уже исполнилось 25 лет, то предприниматель готов оказать помощь — научит, как выйти на новый уровень заработка. Специалист уже не первый год проводит тренинги и может подтвердить свои результаты цифрами и прочими фактами. На веб-странице благодарные клиенты оставили свои отзывы, с которыми рекомендуется ознакомиться перед обращением к Евгению. Любой человек может получить практические навыки, которые кардинально изменят его жизнь.

  14. Библиотеку современной фантастической литературы можно найти по ссылке https://skachat-fb2.net/ — здесь собраны издания, которые можно скачать в удобном для себя формате. Электронные книги доступны всем желающим. Чтобы та ли иная книжная новинка или классика оказались на вашем смартфоне, нужно только нажать на заинтересовавшую обложку. Ссылки с главной страницы ведут к описаниям разных произведений, а также выбору формата загружаемого произведения. Никакой лишней информации в каталоге — любой пользователь видит названия представленных на сайте романов и может быстро выбрать, что почитать.

  15. Сегодня очень важно быстро обменить электронные деньги, и сервис https://obmenneg.com/ отлично с этим справляется. Это онлайн-обменник, с помощью которого можно перевести как обычные деньги, так и криптовалюту между кошельками, банковскими картами и так далее. Здесь не требуется авторизация, а еще нет ограничений на наименьшую сумму перевода. Курс обмена рассчитывается на втором этапе оформления заявки, чтобы клиент мог увидеть, сколько получит за отданную сумму. Больше можно узнать на сайте, сразу воспользовавшись услугами обменника.

  16. Обеспечить свое мероприятие специальным оборудованием можно на сайте https://t-audio.com/ — здесь есть все необходимое. Уже больше двух десятилетий компания занимается сдачей в аренду светового и звукового оборудования, а также приборов для спецэффектов и конструкций для сцен. На веб-странице можно ознакомиться с кейсами, представленными в портфолио. Также здесь размещена информация о политике компании в отношении ценообразования. Больше информации можно получить через различные способы обратной связи.

  17. Отзывы о работе тренинг-центра Евгения Гришечкина можно найти по ссылке https://xn—–dlcccbkccvgcbjt5bit5a1c8fua2fb.xn--p1ai/ — тут находятся отклики тех, кто уже занимался на курсах. На веб-страницу постоянно добавляются новые сообщения. За последние 3 года накопилось более сотни писем от благодарных учеников. Авторы сообщений рассказывают о своем опыте учебы, а также раскрывают суммы, которые они смогли заработать, получив ценные советы от именитого тренера. Люди, работающие в разных сферах, смогли существенно увеличить свой доход после прохождения тренингов.

  18. Часто где в интернете можно наткнуться на рекламу графическими баннерами, и веб-площадка https://bannerswall.ru делает все возможно, чтобы такие услуги стали доступнее. Здесь можно быстро найти рекламодателя или вебмастера для рекламы, чтобы сработаться и начать зарабатывать деньги. Главное — соблюдать правила сервиса, с которыми можно ознакомиться в соответствующем разделе. Регистрация в системе портала не требуют оплаты, поэтому основные функции доступны всем. Можно даже купить быструю ссылку за 2 рубля — об этом узнайте через специальный баннер с правой стороны.

  19. Купить на сайте https://edenwood.ru/ можно множество красивых изделий, выполненных из дерева. Здесь есть и небольшие деревянные безделушки, и мебель из древесного массива. Все товары отлично подойдут для украшения интерьера или в качестве презента. Все позиции отличаются уникальность и практичностью – приобрести можно именно то, что обязательно пригодится, а не просто будет пылиться на полке. При этом стиль продукции понравится каждому. В каталоге есть широкий выбор деревянных изделий на любой кошелек.

  20. От том, как можно зарабатывать больше, можно узнать из статей, которые размещены по ссылке https://xn——cddcgbdkcccbzjcbcebg0a6diedb2em2a6a2m5a.xn--p1ai/ — данных очень большое количество. С 2019 года сюда добавлены десятки публикаций, в которых сообщается о трендах в области продаж, инфобизе, создании своего канала на Ютуб, а также многом другом. После прочтения можно оставить комментарий, чем активно пользуются посетители страницы тренинг-центра. Статьи добавляются в данный раздел сайта регулярно, поэтому на веб-ресурсе можно всегда найти актуальную информацию.

  21. Бездепозитный бонус — это хороший старт для всех, кто пользуется услугами брокеров, и сайт https://xn--90aaidbbkcjkn6acifbi1arek1ay5n.xn--p1ai/ создан для того, чтобы вы поняли, где его взять. Конечно, не многие брокеры могут так порадовать трейдеров, но у некоторых все же есть такая возможность. Поощрение может быть разным по размеру, поэтому обратите внимание на брокеров с высоким рейтингом — их сайты указаны в списке, это облегчит ваши поиски. Также на сервисе можно найти полезную информацию по соответствующей теме.

  22. Благодаря странице по ссылке https://soundsmix.com можно не думать о том, заблокируют ли ваше видео из-за нарушения авторских прав на аудиодорожку. На платформе представлено множество треков, которые не защищены авторским правом и распространяются по свободной лицензии. Заблокирован контент не будет. Так, и профессионал, и любитель смогут создать контент любого типа с музыкальным сопровождением, которое не повлечет за собой никаких проблем. В представленном ассортименте есть композиции, которые относятся к различным жанрам, так что необходимую пользователь найдет очень быстро. Для скачивания и использования всех функций сайта нужно только пройти регистрацию.

  23. Чтобы дать выход сексуальной энергии, достаточно посетить сайт https://sexcall.online/ — тут собраны номера телефонов, позвоним по которым можно найти виртуальную подругу для интимных разговоров. Девушки, чьи контакты представлены на сайте, способны на многое, чтобы сделать клиентам приятное. У каждой барышни свой номер телефона, набрав который можно с головой погрузиться в атмосферу безудержного секса. Воспользовавшись удобным меню, можно выбрать свой регион РФ, чтобы гарантированно дозвониться и получить удовольствие.

  24. Устали искать площадку, где можно выгодно продать или купить тот или иной товар — посетите https://karedo.ru/ для быстрых и выгодных сделок. Каждый пользователь сайта может открыть на его сервере магазин совершенно бесплатно. Кроме того, портал отлично поможет тем, кому нужно быстро продать диван, куртку или другой товар. Платные услуги помогут некоторым пользователям получить доступ к расширенному функционалу. Кроме того, на сайте есть полезные статьи, с помощью которых отдельные категории товаров станут понятнее.

  25. При помощи веб-сайта https://investzoloto.ru/kurs_zoloto/ вы узнаете текущую информацию о курсе золота в России и посмотрите возможные изменения в ценовой политике в отношении данного драгметалла. Здесь есть перечень банков, также их курс купли и продажи золота. Можете ознакомиться с динамикой курса за прошедшие 3 месяца и сделать на основе этого собственный прогноз. Еще на ресурсе есть дополнительные сведения о монетах и о других изделиях из этого драгоценного металла. Очень удобная опция — в графе аналитики уже можно ознакомиться с готовыми прогнозами.

  26. Строительные компании, частные специалисты и заказчики могут пользоваться сайтом https://stroyzakaz.net/ и размещать там свои услуги и заказы. Использование сервиса совершенно бесплатно, чтобы каждый мог найти исполнителя или клиента. Это удобная и простая в использовании строительная биржа, на которой легко оставить свое предложение. Кроме доски объявлений и списка строителей и компаний, можно найти статьи и новости по соответствующей теме. Полезный контент не только даст ранее неизвестную информацию, но и поможет развлечься, пока клиенты пишут отклик на сообщение.

  27. Многие женщины хотят оставаться соблазнительными и красивыми, и если вы к ним относитесь, рекомендуем посетить https://womensblog.pp.ua сайт от женщин для женщин. Здесь вы найдете для себя интереснейшие материалы. Статьи о семье, взаимоотношениях с мужчинами, детьми, советы при беременности, лайфхаки в области красоты и многое другое есть на сайте. Кроме этого, есть и другие полезные советы, которые помогут улучшить жизнь. Статьи выходят регулярно, всегда будет, что почитать. Вы не будете стесняться — обсуждаются любые, даже самые пикантные темы, всё, что вам захочется.

  28. Веб-ресурс https://aromafiolent.ru предлагает натуральную крымскую косметику, которая не только позволит оставаться красивыми, но и молодыми. В каталоге можно найти средства для волос, парфюмерию, морскую соль, товары для здоровья и даже натуральный чай. Магазин реализует продукцию, которая создана брендами из Крыма, которые успели завоевать доверие клиентов. Также магазин регулярно проводит акции, чтобы покупатели могли экономить на любимых косметических средствах, приобретая их по скидкам.

  29. На сайте https://kreslo-kupi.ru/ купить можно компьютерное кресло и парту. Цены, при этом, будут достаточно демократичными. Формировать заказы и оплачивать их можно любым способом, который будет удобен. Определить удобное время доставки можно самостоятельно, ведь компания всегда старается стать лучшим партнером и помощником для клиентов. Мебель заказывать можно по электронной почте, а также телефону. Стулья и кресла подбирать можно для салонов, баров, ресторанов и не только. Товары могут доставляться в разные города – перечень населенных пунктов указывается на сайте.

发表评论

您的电子邮箱地址不会被公开。