чт, 23 июл. 2020 г. в 19:28, Martin Grigorov <[email protected]>:

> Hi Илья,
>
> I didn't have much success with Google Perf Tools.
> I've tried both with adding '-lprofiler' to LDFLAGS when building HAProxy
> and with LD_PRELOAD.
> In both cases on ARM64 it fails with: terminated by signal SIGSEGV
> (Address boundary error)
>
> On x86_64 there is no such issue but the produced result file is always
> empty.
>


I can try on your hardware if you  give me an access,


>
> $ ldd haproxy
>         linux-vdso.so.1 (0x00007ffcfb5cd000)
>         libprofiler.so.0 => /usr/local/lib/libprofiler.so.0
> (0x00007f2115507000)                            <<<<<<<<<<<<<<<<<<
>         libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
> (0x00007f21154cc000)
>         libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f21154b0000)
>         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f21154aa000)
>         librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f211549f000)
>         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007f211547c000)
>         libssl.so.1.1 => /home/ubuntu/opt/lib/libssl.so.1.1
> (0x00007f21151e6000)
>         libcrypto.so.1.1 => /home/ubuntu/opt/lib/libcrypto.so.1.1
> (0x00007f2114cf4000)
>         liblua5.3.so.0 => /usr/lib/x86_64-linux-gnu/liblua5.3.so.0
> (0x00007f2114cb9000)
>         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2114b6a000)
>         libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0
> (0x00007f2114abd000)
>         libpcreposix.so.3 => /usr/lib/x86_64-linux-gnu/libpcreposix.so.3
> (0x00007f2114ab8000)
>         libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3
> (0x00007f2114a43000)
>         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
> (0x00007f2114a28000)
>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2114836000)
>         libunwind.so.8 => /usr/lib/x86_64-linux-gnu/libunwind.so.8
> (0x00007f2114819000)
>         libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> (0x00007f2114638000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007f211552e000)
>         liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
> (0x00007f211460f000)
>         liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1
> (0x00007f21145ee000)
>         libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20
> (0x00007f21144d0000)
>         libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0
> (0x00007f21144ad000)
>
> CPUPROFILE=/tmp/haproxy-load-x64.prof haproxy -p pid.txt -f haproxy.cfg
>
> The above command creates /tmp/haproxy-load-x64.prof but it is never
> populated with any data. I've tried stopping HAProxy with signals INT, KILL
> and TERM.
> I even tried with env var CPUPROFILESIGNAL=12 to start/stop the profiler
> manually but again no success.
>
> I could share with you reports from Linux 'perf' command. Just let me know
> which events you'd be interested in!
>

perf is somewhat strange, I recall really weird reports from it. maybe
something was wrong with my hands.

yeah, let us have a look at perf from both arm64 and amd64



>
> Regards,
> Martin
>
> On Sat, Jul 18, 2020 at 11:40 AM Илья Шипицин <[email protected]>
> wrote:
>
>> Hello, Martin!
>>
>> Can you please compare load profiles using google perftools ?
>>
>> I never tried to use gperf on ARM64, also, my trial at Linaro is over, I
>> do not have an access to any ARM64 anymore.
>> in short, gperf can be found https://github.com/gperftools/gperftools
>>
>> please follow "CPU profiling part".
>>
>> it can collect cachegrind output, I attached example kcachegrind report
>> (you can sort by "self" time).
>> it would be interesting to compare amd64 <--> arm64
>>
>> [image: Screenshot from 2020-07-18 13-35-27.png]
>>
>>
>> пт, 10 июл. 2020 г. в 19:00, Martin Grigorov <[email protected]>:
>>
>>> Hello HAProxy community,
>>>
>>> I wanted to compare how the newly released HAProxy 2.2 (Congrats!)
>>> behaves under heavy load so I've ran some tests on my x86_64 and aarch64
>>> VMs:
>>>
>>>
>>> https://medium.com/@martin.grigorov/compare-haproxy-performance-on-x86-64-and-arm64-cpu-architectures-bfd55d1d5566
>>>
>>> Without much surprise the x86_64 VM gave better results!
>>>
>>> It is *not* a real use case scenario: the backends serve on GET / and
>>> return "Hello World", without any file/network operations.
>>>
>>> What is interesting though is that I can get 120-160K reqs/sec when
>>> hitting directly one of the backend servers, and only 20-40K reqs/sec when
>>> using HAProxy as a load balancer in front of them.
>>>
>>> I'd be happy to re-run the tests with any kind of improvements you may
>>> have!
>>>
>>> Regards,
>>> Martin
>>>
>>

Reply via email to