ywkaras edited a comment on pull request #7382: URL: https://github.com/apache/trafficserver/pull/7382#issuecomment-746589841
When I run 'perf top' on the TS process, for baseline TS, with the above
h2load command running, this is what I get:
```
16.62% [kernel] [k] 0xffffffffbb12539f
◆
5.41% [kernel] [k] 0xffffffffbb003387
▒
5.11% [kernel] [k] 0xffffffffbb109484
▒
4.39% [kernel] [k] 0xffffffffbb90c72e
▒
2.03% traffic_server [.] read_from_net
▒
1.64% traffic_server [.] UnixNetVConnection::load_buffer_and_write
▒
1.61% libc-2.17.so [.] __memcpy_ssse3
▒
1.33% libpthread-2.17.so [.] pthread_getspecific
▒
0.82% [kernel] [k] 0xffffffffbb222920
▒
0.72% [kernel] [k] 0xffffffffbb1d85af
▒
0.63% [kernel] [k] 0xffffffffbb222934
▒
0.44% [kernel] [k] 0xffffffffbb0edd65
▒
0.44% libtscore.so.10.0.0 [.] freelist_new
▒
0.41% libc-2.17.so [.] memchr
▒
0.41% traffic_server [.] HttpTransact::update_size_and_time_stats
▒
0.40% traffic_server [.] mime_hdr_field_find
▒
0.37% [kernel] [k] 0xffffffffbb27b6fc
▒
0.34% [kernel] [k] 0xffffffffbb734b61
▒
0.34% traffic_server [.] HttpSM::set_next_state
▒
0.34% traffic_server [.] HttpSM::handle_api_return
▒
0.31% libstdc++.so.6.0.19 [.]
__cxxabiv1::__vmi_class_type_info::__do_dyncast ▒
0.31% traffic_server [.] CacheVC::openReadStartHead
▒
0.30% traffic_server [.] thread_alloc
▒
0.29% ld-2.17.so [.] __tls_get_addr
▒
0.27% libc-2.17.so [.] __libc_writev
▒
0.26% libtscore.so.10.0.0 [.] freelist_free
▒
0.26% traffic_server [.] HdrHeap::destroy
```
If I run it with `--disable_freelist` this is what I get:
```
5.78% [kernel] [k] 0xffffffffbb109484
▒
4.41% [kernel] [k] 0xffffffffbb003387
▒
4.22% [kernel] [k] 0xffffffffbb90c72e
▒
2.03% traffic_server [.] read_from_net
▒
1.77% traffic_server [.] UnixNetVConnection::load_buffer_and_write
▒
1.66% libc-2.17.so [.] __memcpy_ssse3
▒
1.25% libpthread-2.17.so [.] pthread_getspecific
▒
0.96% [kernel] [k] 0xffffffffbb222920
▒
0.89% libc-2.17.so [.] _int_malloc
▒
0.79% [kernel] [k] 0xffffffffbb1d85af
▒
0.67% [kernel] [k] 0xffffffffbb222934
▒
0.58% libc-2.17.so [.] _int_free
▒
0.48% [kernel] [k] 0xffffffffbb0edd65
▒
0.45% traffic_server [.] HttpTransact::update_size_and_time_stats
▒
0.41% libc-2.17.so [.] memchr
▒
0.40% traffic_server [.] mime_hdr_field_find
▒
0.35% traffic_server [.] HttpSM::set_next_state
▒
0.34% traffic_server [.] LogObject::_checkout_write
▒
0.33% traffic_server [.] HttpSM::handle_api_return
▒
0.33% ld-2.17.so [.] __tls_get_addr
▒
0.33% [kernel] [k] 0xffffffffbb734b61
▒
0.32% libstdc++.so.6.0.19 [.]
__cxxabiv1::__vmi_class_type_info::__do_dyncast ▒
0.32% libc-2.17.so [.] malloc
▒
0.32% libc-2.17.so [.] free
▒
0.30% traffic_server [.] CacheVC::openReadStartHead
▒
0.29% [kernel] [k] 0xffffffffbb27b6fc
```
These results don't seem to indicate there would be a huge payoff from
optimizing memory allocation. But, the total percentage for freelist_new/free
is 0.67, and the total percentage for [__int_]malloc/free is 2.11 . I think
@bryancall got significantly different results, running of bare metal rather
than in docker. Bare metal seem more likely to be trustworthy.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
