Skip to content

Instantly share code, notes, and snippets.

Chase chase439

  • Chantilly, Virginia
Block or report user

Report or block chase439

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
chase439 /
Created Nov 1, 2018 — forked from WJWH/
The double hijack trick, serving 65k connections from a single ruby process
# This server demo does a socket hijack in Rack and then saves the socket to a global variable
# to prevent it from being GCed when the Puma thread ends. It will then write "BEEP" to each
# socket every ten seconds to prevent the connection timing out. During testing, it easily
# handled up to 65523 connections, after which it ran into the `ulimit` for open file descriptors.
# The bit with the waiting area is there because a normal `Set` is not thread safe and it would
# drop socket due to race conditions. The `Queue` is thread safe and will make sure all sockets
# are preserved.
# run with `rackup -q -p 8000 -o`
# testing: install `ab` and then run `ab -c 20000 -n 20000 <ip adress of server>:8000/
You can’t perform that action at this time.