On Fri, May 29, 2015 at 1:32 PM, Ben Pfaff <[email protected]> wrote:
> On Wed, Apr 15, 2015 at 09:01:14AM -0700, Andy Zhou wrote:
>> Add a set of user space instruction counters to help break down
>> where instructions are spent.
>>
>> Here is an example of screen capture of adding a port to database
>> without any monitoring client.
>>
>> ~/projs/ovs/tutorial$ ovs-appctl -t
>> ovsdb-server ovsdb-server/perf-counters-clear
>> ~/projs/ovs/tutorial$ ovs-vsctl add-port br0 p3
>> ~/projs/ovs/tutorial$ ovs-appctl -t
>> ovsdb-server ovsdb-server/perf-counters-show
>> ovsdb_execute_comment       1        1069 1069.0
>> ovsdb_execute_insert        2       40849 20424.5
>> ovsdb_execute_mutate        1       12166 12166.0
>> ovsdb_execute_select        1        9086 9086.0
>> ovsdb_execute_update        4      107140 26785.0
>> ovsdb_execute_wait          6       86628 14438.0
>> ovsdb_txn_commit            2      906922 453461.0
>>
>> However, with 300 monitoring clients, add a port yield:
>>
>> ovsdb_execute_comment       1        1069 1069.0
>> ovsdb_execute_insert        2       43304 21652.0
>> ovsdb_execute_mutate        1       15173 15173.0
>> ovsdb_execute_select        1       10560 10560.0
>> ovsdb_execute_update        4      118056 29514.0
>> ovsdb_execute_wait          8      121386 15173.2
>> ovsdb_txn_commit            2    27976269 13988134.5
>>
>> It is clear that ovsdb_txn_commit has the biggest scaling issue w.r.t
>> the number of monitoring clients.
>>
>> Signed-off-by: Andy Zhou <[email protected]>
>
> This makes hundreds of tests fail on my system.  Example backtrace:

Not sure what happened there. While reviewing the patch, I decided to
simply it a bit more
before sending out V2.

Instead of two macros, I think a single macro wrap around a set of
expression is probably more flexible
and simpler to use.

Review the performance data, it seems the most useful data is
'ovsdb_txn_commit' instruction counts. Simply the
patch to only collect this number for now.

Each performance counter read is a syscall, when this cost become
significant, we may want to add ways to enable or
disable data collection at run time. For now it is always enabled on
any available platforms.

I will post v2 soon.
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to