More scalable agents

     +
    https://en.wikipedia.org/wiki/Nio[ +
    image:https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Nikko_Toshogu_Nio_M3043.jpg/160px-Nikko_Toshogu_Nio_M3043.jpg[image] +
    ] +

    Nio

    +
    +
    +
     +
    https://en.wikipedia.org/wiki/New_I/O[NIO]-based https://wiki.jenkins.io/display/JENKINS/Distributed+builds#Distributedbuilds-LaunchslaveagentviaJavaWebStart[Java Web Start (JNLP) agent handling] is coming to 1.560. This will help you run a large number of JNLP agents more efficiently. A connected JNLP agent used to occupy one thread on the controller, but now it occupies none. Combined with the earlier change that eliminated threads from idle executors, now you can connect thousands of agents. +
     +
     +
    All you have to do is to use the latest `+agent.jar+` from Jenkins 1.560. No other changes are necessary on users' part. +
     +
     +
    A bulk of this is implemented in https://github.com/jenkinsci/remoting[remoting 2.38], and a good part of it was implemented about a year ago on the airplane on the way to Europe. +
     +
     +
    We plan to make CLI connections take advantages of this too, which helps those who use that a lot. That's not in 1.560, but hopefully it'll be in the near future. This change also paves a way for multi-participant bus-topology communication, which I think would be an useful building block for https://github.com/jenkinsci/master-to-master-api-plugin/[the work-in-progress controller-to-controller API].
    About the Author
    Kohsuke Kawaguchi
    Kohsuke Kawaguchi

    Kohsuke is the creator of Jenkins.