You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Niklas Nielsen <ni...@qni.dk> on 2014/08/28 00:49:06 UTC

Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/
-----------------------------------------------------------

Review request for mesos, Benjamin Hindman and Ben Mahler.


Repository: mesos-git


Description
-------

Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).

The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.


Diffs
-----

  src/Makefile.am 40b9f6b 
  src/net-bench/main.cpp PRE-CREATION 

Diff: https://reviews.apache.org/r/25124/diff/


Testing
-------

Server:

$ ./src/mesos-net-bench
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second


Client:

$ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...


Thanks,

Niklas Nielsen


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Dominic Hamon <dh...@twopensource.com>.

> On Aug. 27, 2014, 4:01 p.m., Dominic Hamon wrote:
> > src/net-bench/main.cpp, line 166
> > <https://reviews.apache.org/r/25124/diff/1/?file=670615#file670615line166>
> >
> >     it might be worth (for a future version) allowing this to be a random string of user-defined length and also tracking statistics for bytes sent/received.
> 
> Niklas Nielsen wrote:
>     Good point - we would need to install message handlers accordingly though. I would categorize it as future work :-) Want a TODO in place?

sure.

i was also going to suggest using the libprocess metrics library to get access to the counters through an endpoint, but that's almost certainly overkill.

as an aside, the numbers you get are similar to some theoretical upper-bound numbers we saw when testing the rate limiting framework. that suggests that 1. your methodology is sound and 2. that libprocess is the bottleneck rather than the communication up the stack to mesos.


- Dominic


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/#review51716
-----------------------------------------------------------


On Aug. 27, 2014, 3:49 p.m., Niklas Nielsen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25124/
> -----------------------------------------------------------
> 
> (Updated Aug. 27, 2014, 3:49 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Ben Mahler.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
> One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).
> 
> The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am 40b9f6b 
>   src/net-bench/main.cpp PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/25124/diff/
> 
> 
> Testing
> -------
> 
> Server:
> 
> $ ./src/mesos-net-bench
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
> I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
> I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
> I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
> I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second
> 
> 
> Client:
> 
> $ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...
> 
> 
> Thanks,
> 
> Niklas Nielsen
> 
>


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Niklas Nielsen <ni...@qni.dk>.

> On Aug. 27, 2014, 4:01 p.m., Dominic Hamon wrote:
> > src/net-bench/main.cpp, line 166
> > <https://reviews.apache.org/r/25124/diff/1/?file=670615#file670615line166>
> >
> >     it might be worth (for a future version) allowing this to be a random string of user-defined length and also tracking statistics for bytes sent/received.

Good point - we would need to install message handlers accordingly though. I would categorize it as future work :-) Want a TODO in place?


- Niklas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/#review51716
-----------------------------------------------------------


On Aug. 27, 2014, 3:49 p.m., Niklas Nielsen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25124/
> -----------------------------------------------------------
> 
> (Updated Aug. 27, 2014, 3:49 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Ben Mahler.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
> One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).
> 
> The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am 40b9f6b 
>   src/net-bench/main.cpp PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/25124/diff/
> 
> 
> Testing
> -------
> 
> Server:
> 
> $ ./src/mesos-net-bench
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
> I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
> I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
> I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
> I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second
> 
> 
> Client:
> 
> $ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...
> 
> 
> Thanks,
> 
> Niklas Nielsen
> 
>


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Niklas Nielsen <ni...@qni.dk>.

> On Aug. 27, 2014, 4:01 p.m., Dominic Hamon wrote:
> > src/net-bench/main.cpp, line 166
> > <https://reviews.apache.org/r/25124/diff/1/?file=670615#file670615line166>
> >
> >     it might be worth (for a future version) allowing this to be a random string of user-defined length and also tracking statistics for bytes sent/received.
> 
> Niklas Nielsen wrote:
>     Good point - we would need to install message handlers accordingly though. I would categorize it as future work :-) Want a TODO in place?
> 
> Dominic Hamon wrote:
>     sure.
>     
>     i was also going to suggest using the libprocess metrics library to get access to the counters through an endpoint, but that's almost certainly overkill.
>     
>     as an aside, the numbers you get are similar to some theoretical upper-bound numbers we saw when testing the rate limiting framework. that suggests that 1. your methodology is sound and 2. that libprocess is the bottleneck rather than the communication up the stack to mesos.

Cool - just updated the patch with a TODO on bandwidth tracking.


- Niklas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/#review51716
-----------------------------------------------------------


On Aug. 28, 2014, 11:51 a.m., Niklas Nielsen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25124/
> -----------------------------------------------------------
> 
> (Updated Aug. 28, 2014, 11:51 a.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Ben Mahler.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
> One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).
> 
> The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/stout/include/Makefile.am 6fa5b74 
>   3rdparty/libprocess/3rdparty/stout/include/stout/glog.hpp PRE-CREATION 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/signals.hpp 30232f5 
>   3rdparty/libprocess/3rdparty/stout/tests/main.cpp f5f20ee 
>   3rdparty/libprocess/src/tests/main.cpp 0a3ba4e 
>   src/Makefile.am 40b9f6b 
>   src/logging/logging.cpp 6b14575 
>   src/net-bench/main.cpp PRE-CREATION 
>   src/slave/containerizer/containerizer.cpp 0254679 
>   src/slave/containerizer/external_containerizer.hpp 8363cec 
>   src/slave/containerizer/external_containerizer.cpp efbc68f 
>   src/tests/main.cpp 90a7ddc 
> 
> Diff: https://reviews.apache.org/r/25124/diff/
> 
> 
> Testing
> -------
> 
> Server:
> 
> $ ./src/mesos-net-bench
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
> I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
> I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
> I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
> I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second
> 
> 
> Client:
> 
> $ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...
> 
> 
> Thanks,
> 
> Niklas Nielsen
> 
>


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Dominic Hamon <dh...@twopensource.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/#review51716
-----------------------------------------------------------



src/net-bench/main.cpp
<https://reviews.apache.org/r/25124/#comment90265>

    it might be worth (for a future version) allowing this to be a random string of user-defined length and also tracking statistics for bytes sent/received.


- Dominic Hamon


On Aug. 27, 2014, 3:49 p.m., Niklas Nielsen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25124/
> -----------------------------------------------------------
> 
> (Updated Aug. 27, 2014, 3:49 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Ben Mahler.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
> One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).
> 
> The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am 40b9f6b 
>   src/net-bench/main.cpp PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/25124/diff/
> 
> 
> Testing
> -------
> 
> Server:
> 
> $ ./src/mesos-net-bench
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
> I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
> I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
> I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
> I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second
> 
> 
> Client:
> 
> $ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...
> 
> 
> Thanks,
> 
> Niklas Nielsen
> 
>


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Mesos ReviewBot <de...@mesos.apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/#review51941
-----------------------------------------------------------


Patch looks great!

Reviews applied: [25124]

All tests passed.

- Mesos ReviewBot


On Aug. 29, 2014, 5:19 a.m., Niklas Nielsen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25124/
> -----------------------------------------------------------
> 
> (Updated Aug. 29, 2014, 5:19 a.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Ben Mahler.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
> One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).
> 
> The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.
> 
> 
> Diffs
> -----
> 
>   src/Makefile.am 40b9f6b 
>   src/net-bench/main.cpp PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/25124/diff/
> 
> 
> Testing
> -------
> 
> Server:
> 
> $ ./src/mesos-net-bench
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
> I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
> I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
> I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
> I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second
> 
> 
> Client:
> 
> $ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...
> 
> 
> Thanks,
> 
> Niklas Nielsen
> 
>


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Niklas Nielsen <ni...@qni.dk>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/
-----------------------------------------------------------

(Updated Aug. 28, 2014, 10:19 p.m.)


Review request for mesos, Benjamin Hindman and Ben Mahler.


Changes
-------

Please disregard previous patch - wrong diff.


Repository: mesos-git


Description
-------

Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).

The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.


Diffs (updated)
-----

  src/Makefile.am 40b9f6b 
  src/net-bench/main.cpp PRE-CREATION 

Diff: https://reviews.apache.org/r/25124/diff/


Testing
-------

Server:

$ ./src/mesos-net-bench
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second


Client:

$ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...


Thanks,

Niklas Nielsen


Re: Review Request 25124: Added 'net-bench' libprocess benchmarking tool.

Posted by Niklas Nielsen <ni...@qni.dk>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25124/
-----------------------------------------------------------

(Updated Aug. 28, 2014, 11:51 a.m.)


Review request for mesos, Benjamin Hindman and Ben Mahler.


Changes
-------

Added note on bandwidth measurement.


Repository: mesos-git


Description
-------

Added libprocess connection throughput stress test (basically two libprocess programs sending messsages back and forth).
One end is multihomed so we can scale the number of clients. One client will issue multiple "concurrent" messages (messages sent before waiting for acknowledgement).

The motivation is to stress test libprocess communication and get an idea on theoretical throughput / scale-properties for increase slave-fanout.


Diffs (updated)
-----

  3rdparty/libprocess/3rdparty/stout/include/Makefile.am 6fa5b74 
  3rdparty/libprocess/3rdparty/stout/include/stout/glog.hpp PRE-CREATION 
  3rdparty/libprocess/3rdparty/stout/include/stout/os/signals.hpp 30232f5 
  3rdparty/libprocess/3rdparty/stout/tests/main.cpp f5f20ee 
  3rdparty/libprocess/src/tests/main.cpp 0a3ba4e 
  src/Makefile.am 40b9f6b 
  src/logging/logging.cpp 6b14575 
  src/net-bench/main.cpp PRE-CREATION 
  src/slave/containerizer/containerizer.cpp 0254679 
  src/slave/containerizer/external_containerizer.hpp 8363cec 
  src/slave/containerizer/external_containerizer.cpp efbc68f 
  src/tests/main.cpp 90a7ddc 

Diff: https://reviews.apache.org/r/25124/diff/


Testing
-------

Server:

$ ./src/mesos-net-bench
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0827 15:48:01.605250 259977216 main.cpp:111] Running server at (1)@10.0.0.224:53492
I0827 15:48:13.617341 259977216 main.cpp:135] 14628.2 requests / second
I0827 15:48:14.617578 258367488 main.cpp:135] 13886.7 requests / second
I0827 15:48:15.617683 257830912 main.cpp:135] 8677.19 requests / second
I0827 15:48:16.617771 257830912 main.cpp:135] 8304.19 requests / second


Client:

$ ./build/src/mesos-net-bench --server="(1)@10.0.0.224:53492"
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0827 15:48:12.624887 124162048 main.cpp:115] Connecting to server at (1)@10.0.0.224:53492...


Thanks,

Niklas Nielsen