Limiting total number of incoming connections for a port with iptables for high loading server

Regex version of strip() - Ch. 7 Automate the Boring Stuff

What is this airplane that sits in front of Barringer High School in Newark, NJ?

I wish, I yearn, for an answer to this riddle

Bash function: Execute $@ command with each argument in sequence executed separately

Does knowing the surface area of all faces uniquely determine a tetrahedron?

What does "vrit' mean with reference to documentaries?

Scaling an object to change its key

How do I become a better writer when I hate reading?

Why do you need to heat the pan before heating the olive oil?

Why swap space doesn't get filesystem check at boot time?

What is the context for Napoleon's quote "[the Austrians] did not know the value of five minutes"?

Is there a polite way to ask about one's ethnicity?

Is using Legacy mode is a bad thing to do?

Is it a bad idea to have a pen name with only an initial for a surname?

Got a new frameset, don't know why I need this split ring collar?

Having some issue with notation in a Hilbert space

Counterfeit check

Why was New Asgard established at this place?

First occurrence in the Sixers sequence

Automatically open a terminal window and run a command, robustly

What is the precise meaning of "подсел на мак"?

How could I create a situation in which a PC has to make a saving throw or be forced to pet a dog?

How to sort human readable size

How "fast" do astronomical events occur?



Limiting total number of incoming connections for a port with iptables for high loading server







.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I have a server program listening on a port, and I want to limit the total number of incoming TCP connections for the port.



I tried the following rule:



-A INPUT -p tcp --syn --match multiport --dports 443,4443 -m connlimit --connlimit-above 15000 --connlimit-saddr --connlimit-mask 0 -j DROP


But it will introduce high CPU usage of "ksoftirqd", and high packet response latency.
The normal traffic of the server is to have about totally 14000 ~ 15000 connections coming from 9000 ~ 11000 different source IPs.
Is there any other solution?



OS: Red Hat Enterprise Linux Server release 7.5.

iptables: v1.4.21










share|improve this question




























    0















    I have a server program listening on a port, and I want to limit the total number of incoming TCP connections for the port.



    I tried the following rule:



    -A INPUT -p tcp --syn --match multiport --dports 443,4443 -m connlimit --connlimit-above 15000 --connlimit-saddr --connlimit-mask 0 -j DROP


    But it will introduce high CPU usage of "ksoftirqd", and high packet response latency.
    The normal traffic of the server is to have about totally 14000 ~ 15000 connections coming from 9000 ~ 11000 different source IPs.
    Is there any other solution?



    OS: Red Hat Enterprise Linux Server release 7.5.

    iptables: v1.4.21










    share|improve this question
























      0












      0








      0


      1






      I have a server program listening on a port, and I want to limit the total number of incoming TCP connections for the port.



      I tried the following rule:



      -A INPUT -p tcp --syn --match multiport --dports 443,4443 -m connlimit --connlimit-above 15000 --connlimit-saddr --connlimit-mask 0 -j DROP


      But it will introduce high CPU usage of "ksoftirqd", and high packet response latency.
      The normal traffic of the server is to have about totally 14000 ~ 15000 connections coming from 9000 ~ 11000 different source IPs.
      Is there any other solution?



      OS: Red Hat Enterprise Linux Server release 7.5.

      iptables: v1.4.21










      share|improve this question














      I have a server program listening on a port, and I want to limit the total number of incoming TCP connections for the port.



      I tried the following rule:



      -A INPUT -p tcp --syn --match multiport --dports 443,4443 -m connlimit --connlimit-above 15000 --connlimit-saddr --connlimit-mask 0 -j DROP


      But it will introduce high CPU usage of "ksoftirqd", and high packet response latency.
      The normal traffic of the server is to have about totally 14000 ~ 15000 connections coming from 9000 ~ 11000 different source IPs.
      Is there any other solution?



      OS: Red Hat Enterprise Linux Server release 7.5.

      iptables: v1.4.21







      linux iptables redhat






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked May 31 at 23:53









      someonesomeone

      31




      31




















          1 Answer
          1






          active

          oldest

          votes


















          1














          It's not surprising you are having a performance issue, since you're now asking the system to spend a lot of time counting connections to determine if there are more than an arbitrary number of them, and it has to do this on every new request. (And for some reason it seems you are making lots of short-lived connections. Try to avoid that if you can.)



          Ultimately if you want to keep this level of performance, you should put a separate firewall in front of the server, which can do all the necessary connection tracking and allow your server to focus on serving its application. This will introduce a slight bit of latency, though, so if your application is very latency-sensitive then you might not have any good solution at all. (Except for making the short-lived connections longer-lived.)






          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "2"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f969727%2flimiting-total-number-of-incoming-connections-for-a-port-with-iptables-for-high%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            It's not surprising you are having a performance issue, since you're now asking the system to spend a lot of time counting connections to determine if there are more than an arbitrary number of them, and it has to do this on every new request. (And for some reason it seems you are making lots of short-lived connections. Try to avoid that if you can.)



            Ultimately if you want to keep this level of performance, you should put a separate firewall in front of the server, which can do all the necessary connection tracking and allow your server to focus on serving its application. This will introduce a slight bit of latency, though, so if your application is very latency-sensitive then you might not have any good solution at all. (Except for making the short-lived connections longer-lived.)






            share|improve this answer



























              1














              It's not surprising you are having a performance issue, since you're now asking the system to spend a lot of time counting connections to determine if there are more than an arbitrary number of them, and it has to do this on every new request. (And for some reason it seems you are making lots of short-lived connections. Try to avoid that if you can.)



              Ultimately if you want to keep this level of performance, you should put a separate firewall in front of the server, which can do all the necessary connection tracking and allow your server to focus on serving its application. This will introduce a slight bit of latency, though, so if your application is very latency-sensitive then you might not have any good solution at all. (Except for making the short-lived connections longer-lived.)






              share|improve this answer

























                1












                1








                1







                It's not surprising you are having a performance issue, since you're now asking the system to spend a lot of time counting connections to determine if there are more than an arbitrary number of them, and it has to do this on every new request. (And for some reason it seems you are making lots of short-lived connections. Try to avoid that if you can.)



                Ultimately if you want to keep this level of performance, you should put a separate firewall in front of the server, which can do all the necessary connection tracking and allow your server to focus on serving its application. This will introduce a slight bit of latency, though, so if your application is very latency-sensitive then you might not have any good solution at all. (Except for making the short-lived connections longer-lived.)






                share|improve this answer













                It's not surprising you are having a performance issue, since you're now asking the system to spend a lot of time counting connections to determine if there are more than an arbitrary number of them, and it has to do this on every new request. (And for some reason it seems you are making lots of short-lived connections. Try to avoid that if you can.)



                Ultimately if you want to keep this level of performance, you should put a separate firewall in front of the server, which can do all the necessary connection tracking and allow your server to focus on serving its application. This will introduce a slight bit of latency, though, so if your application is very latency-sensitive then you might not have any good solution at all. (Except for making the short-lived connections longer-lived.)







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jun 1 at 0:34









                Michael HamptonMichael Hampton

                180k28331664




                180k28331664



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Server Fault!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f969727%2flimiting-total-number-of-incoming-connections-for-a-port-with-iptables-for-high%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to write a 12-bar blues melodyI-IV-V blues progressionHow to play the bridges in a standard blues progressionHow does Gdim7 fit in C# minor?question on a certain chord progressionMusicology of Melody12 bar blues, spread rhythm: alternative to 6th chord to avoid finger stretchChord progressions/ Root key/ MelodiesHow to put chords (POP-EDM) under a given lead vocal melody (starting from a good knowledge in music theory)Are there “rules” for improvising with the minor pentatonic scale over 12-bar shuffle?Confusion about blues scale and chords

                    What if the end-user didn't have the required library?What is setup.py?What is a clean, pythonic way to have multiple constructors in Python?What does Ruby have that Python doesn't, and vice versa?What is the reason for having '//' in Python?How do I create a namespace package in Python?How to package shared objects that python modules depend on?setuptools vs. distutils: why is distutils still a thing?Navigation in Windows 10 vs code not going to virtualenv library when the same library is installed at user levelPython create package for local usePackaging a project that uses multiple python versionsWhy is permission denied on pip install except for when “--user” is included at end of command?

                    Esgonzo ibérico Índice Descrición Distribución Hábitat Ameazas Notas Véxase tamén "Acerca dos nomes dos anfibios e réptiles galegos""Chalcides bedriagai"Chalcides bedriagai en Carrascal, L. M. Salvador, A. (Eds). Enciclopedia virtual de los vertebrados españoles. Museo Nacional de Ciencias Naturales, Madrid. España.Fotos