On Wednesday, March 27, 2019 at 4:51:05 AM UTC-4, Pekka Enberg wrote: > > > > On Wed, Mar 27, 2019 at 10:48 AM Pekka Enberg <[email protected] > <javascript:>> wrote: > >> Hi Waldek! >> >> On Wed, Mar 27, 2019 at 12:29 AM Waldek Kozaczuk <[email protected] >> <javascript:>> wrote: >> >>> Last week I spent some time investigating OSv performance and comparing >>> it to Docker and Linux guests. >>> >> >> Nice! >> >> On Wed, Mar 27, 2019 at 12:29 AM Waldek Kozaczuk <[email protected] >> <javascript:>> wrote: >> >>> The test setup looked like this: >>> >>> *Host:* >>> >>> - MacBook Pro with Intel i7 4 cores CPU with hyperthreading (8 cpus >>> reported by lscpu) with 16GB of RAM with Ubuntu 18.10 on it >>> - firecracker 0.15.0 >>> - QEMU 2.12.0 >>> >>> >>> *Client machine:* >>> >>> - similar to the one above with wrk as a test client firing requests >>> using 10 threads and 100 open connections for 30 seconds in 3 series one >>> by >>> one (please see this test script - >>> >>> https://github.com/wkozaczuk/unikernels-v-containers/blob/master/test-restapi-with-wrk.sh >>> ). >>> - wrk by default uses Keep-Alive for http connections so TCP >>> handshake is minimal >>> >>> The host and client machine were connected directly to 1 GBit ethernet >>> switch and host exposed guest IP using a bridged TAP nic (please see the >>> script used - >>> https://raw.githubusercontent.com/cloudius-systems/osv/master/scripts/setup-external-bridge.sh >>> ). >>> >>> You can find scripts to start applications on OSv and docker here - >>> https://github.com/wkozaczuk/unikernels-v-containers (run* scripts). >>> Please note --cpu-set parameter used in docker script to limit number of >>> CPUs. >>> >>> You can find detailed results under >>> https://github.com/wkozaczuk/unikernels-v-containers/tree/master/test_results/remote >>> . >>> >> >> Some questions about the evaluation setup and measurements: >> >> - Did you establish a baseline with bare metal configuration? >> > How would I create baseline with with bare metal configuration for 1, 2, 4 CPUs? With docker or qemu I can specify number of cpus.
- Did you measure CPU utilization during the throughput tests? This is >> important because you could be hitting CPU limits with QEMU and Firecracker >> because of software processing needed by virtualized networking. >> > Nothing rigorous. I has mpstat running and I could see that during 1 and 2 cpu tests they were pretty highly utilized (80-90%) but only 40-50% for 4 cpu tests. But nothing I recorded. > - Are the QEMU and Firecracker tests using virtio or vhost? >> > I thought OSv only support virtio. Sorry to be ignorant. I heard the terms but what is actually the difference between vhost and virtio? > - Is Docker also configured to use the bridge device? If not, QEMU and >> Firecracker also have some additional overheads from the bridging. >> > I need to check. Per this - https://raw.githubusercontent.com/wkozaczuk/unikernels-v-containers/master/run-rest-in-docker.shI am sure - I would expose container port to the host. So I think I was bypassing the bridge. BTW is there a way to run OSv on QEMU without a bridge to make it visible on LAN? - Is multiqueue enabled for QEMU and Firecracker? If not, this would limit >> the ability to leverage multiple vCPUs. >> > No idea what you are talking about ;-) > - Is QEMU or Firecracker setting CPU affinity for the vCPU threads? If >> not, two or more vCPUs could be running on the same physical CPU, which >> obviously limits throughput. >> > Not sure. I doubt. I have to investigate. > > Oh forgot the obvious: > > - Is CPU scaling governor set to performance? Also, if the CPU has > TurboBoost, is it disabled? > No idea. Need to read up in on that and check ;-) > > - Pekka > -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
