by Matt

New About Yours API Help
2.1 KB, Plain text
Hi Allan and Benedict,

Love the show, thanks for continuing to put it on every week! I had a quick question about FreeBSD virtualization that I was hoping you might have a tiny bit of insight into.

Up until recently, all of my FreeBSD deployments were almost entirely physical hardware, although I’ve been spinning up more VMs lately across a couple of cloud providers, such as AWS, Google Cloud Platform, and Digital Ocean. For web servers especially, one of my common routines is to run a synthetic benchmark like ApacheBench against NGINX serving static pages to get a relative feel for performance versus other cloud instances (e.g., `ab -n500000 -c1000 -k localhost`). For some reason, even when testing against localhost, FreeBSD’s %user and %sys CPU time seems extremely lopsided compared to the same size CentOS/Ubuntu VMs – whereas Linux is almost entirely %user CPU time, and low %sys (< 10%), FreeBSD’s %sys tends to be far higher in these tests, 50%+, even outpacing the %user CPU time for the duration of the operation. This seems to be consistent whether ApacheBench is being run locally against localhost, or from another VM over the private network stack.

I also noticed during my most recent round of testing that FreeBSD doesn’t appear to report CPU steal time in any of the base utilities that I thought to try, nor did it appear to be present using `htop` or `atop`, either.

My questions for you are: 

- Do you have any ideas as to why FreeBSD 11’s (11.1-RELEASE) VM guest performance would at passing glance seem to be so off compared to same-sized Linux instances when it comes to user/sys time performing the same operation  – such as inefficiencies remaining in virtualization code needing to be ironed out (interrupts, scheduling, etc.)…?

- Is CPU steal time reporting something that might be worked on for a future release? I know many companies with heavy cloud deployments (e.g., Netflix) rely on metrics like %steal to determine if they’re on too noisy of a physical host, and need to perform a guest termination/migration to regain node performance, and seems like a desired feature to have all-around.

Thank you again!

Hershey, PA
Pasted 9 months, 1 week ago — Expires in 85 days