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.

Reply via email to