Quick hack to enable RPS on Linux when in a hurry.
- Enabling receive packet steering at boot
- Installing OpenBSD on OVH's VPS 2016 KVM machines.
- Needles and haystacks: Finding the one bad request among billions with tcpdump
- 1M HTTP Requests per second using Nginx and Ubuntu 12.04 on EC2
- OSX: Where are my
- Python: pcap modules comparison
- VMWare: Routing and Large Receive Offload considered harmful
I've been thinking about running OpenBSD again for a while now, yesterday I had some inspiration and decided to try to boot it on OVH's VPS machines.
OVH doesn't have the best reputation regarding availability and support (both of which I confirmed in the past...), but they are cheap and they have a datacenter in Beauharnois, Qc, that's less than 50km from home.
They're only offering Linux distribution for their VPS SSD instances at the moment, but since the virtualzation technology is KVM, booting the OpenBSD ramdisk kernel (
bsd.rd) and doing the installation is all that is needed to get a working OpenBSD machine.
Here's how I did it.
This week, we had a few weird crashes with an HTTP server which we could not easily reproduce and we had a hard time pin-pointing the source of the issue. We knew the problems were triggered by bad input, but since the process was continuously receiving around 3000 requests per second at the time, it was pretty hard to isolate the exact request(s) that made it crash.
The idea we had was to capture HTTP requests data up to the point where the process crashed. Then, we would open the trace and look for the last successful requests, the faulty one would be in there somewhere.
At work, we have been doing quite a few tests lately to understand what is the maximum number of http queries per second (QPS) that a modern server running Ubuntu 12.04 with a recent Linux kernel could handle.
While doing some packet drop testing for a pcap script I'm writing with a collegue a work, I hit a strange situation on my Mac where
abwould do ~16k HTTP connections really fast, then stop, then timeout.
Turns out this is caused by the lack of available ephemeral port …
an overview of python modules wrapping libpcap
If you're doing ip routing on a VMware virtual machine, make sure to disable Large Receive Offload (LRO) at the vmware level or it will fail in interesting ways.