TiExec: Try to Bring Direct Performance Improvement to Go Applications by Alleviating iTLB-Cache-Miss

144 views
Skip to first unread message

hnes

unread,
Jan 7, 2022, 11:53:41 AM1/7/22
to golang-nuts
TiExec tries to alleviate the iTLB-Cache-Miss of the application it loaded, so it may bring some direct performance improvement to those applications that are being punished by iTLB-Cache-Miss problem. I guess many Golang applications which have a large .text segment might already suffer from this kind of performance penalty. So I hope it could be useful to you :-D

For example, the .text segment size of some components in TiDB is from ~46MB to ~160MB, and a test in an OLTP scenario of TiDB with these components optimized by TiExec shows that it could bring about an overall 6-11% performance improvement directly. Here is more detailed information about this test:

> In one OLTP scenario of TiDB, the tidb-server suffers 68.62% iTLB-Cache-Miss, overall TPS is 307.68/sec, medium latency is 62.22 ms. After TiExec is used, iTLB-Cache-Miss reduced to 47.1% (- ~31%), overall TPS became 341.35/sec (+10.9%), medium latency became 56.32 ms (-9.5%).

Usage:

```bash
$ tiexec echo -e "Hi, I am loaded by tiexec ❤️\nIt may try to make me more performant ☺\n" Hi, I am loaded by tiexec ❤️ It may try to make me more performant ☺ # or even any elf you like $ tiexec go version go version go1.16.4 linux/amd64 $ tiexec rustc -V rustc 1.55.0 (c8dfcfe04 2021-09-06) $ tiexec bin/pd-server ... $ tiexec bin/tidb-server ... $ tiexec bin/tikv-server ... $ tiexec bin/tiflash/tiflash ... $ tiexec bin/prometheus/prometheus ... $ tiexec bin/bin/grafana-server ...
```

hnes

unread,
Jan 9, 2022, 1:06:24 PM1/9/22
to golang-nuts
Sorry, I forgot to attach the link of its github repo:

Reply all
Reply to author
Forward
0 new messages