14 Star 21 Fork 17

openEuler / wisdom-advisor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.en.md 2.38 KB
一键复制 编辑 原始数据 按行查看 历史
liupengroc 提交于 2021-10-26 06:55 . update README.en.md.

Introduction

Wisdom-advisor is a tuning framework that uses scheduling or other methods to improve the performance of applications.

Wisdom-advisor supports the three policies:

  1. Thread affinity specified by users: parses SCHED_GROUP to get thread affinity.
  2. Thread affinity detection: traces syscall futex to get thread affinity.
  3. Thread grouping: detects and binds threads to network and I/O CPUs based on users' settings.

There are several tuning policies available. For example, NUMA affinity detection can reduce access cross-NUMA memory. Another example is network affinity detection, which can detect network access processes and obtain the preferred NUMA node according to the used network devices.

Wisdom-advisor now supports Linux on x86 and ARM64.

Wisdom-advisor requires the root privileges.

Build

Please note that the Go environment is needed and one accessible Goproxy server is necessary for using Go Modules to manage vendoring packages.

To set an available proxy, please refer to Go Module Proxy.

mkdir -p $GOPATH/src/gitee.com
cd $GOPATH/src/gitee.com
git clone <wisdom-advisor project>
cd wisdom-advisor
export GO111MODULE=on
go mod vendor
make

Wisdomd binary file are saved in the $GOPATH/pkg/ directory.

Run test cases:

make check

Install

In the Wisdom-advisor project directory,

make install

How to use

Wisdomd is the daemon and Wisdom is the client.
Get help information:

wisdomd -h
wisdom -h

When using a thread affinity policy without automatic detection, Wisdomd gets group information from /proc/pid/envrion and automatically sets affinity for threads in the group. Group environment variables are in the following format:
__SCHED_GROUP_<group_name>=thread_name1,thread_name2...

wisdom usersetaffinity 

Alternatively, we can use automatic detection:

wisdom threadsaffinity --task sem 

When using thread grouping, the I/O CPU list and network CPU list should be provided.

wisdom threadsgrouping --task test --IO 1-2,5,6 --net 3-4

Wisdomd will execute a scan when using a thread affinity policy with automatic detection or a thread grouping policy. This scan operation can be stopped or restarted.

wisdom scan stop

Other options can be found in help information.

Licensing

Wisdom is licensed under Mulan PSL v2.

Go
1
https://gitee.com/openeuler/wisdom-advisor.git
git@gitee.com:openeuler/wisdom-advisor.git
openeuler
wisdom-advisor
wisdom-advisor
master

搜索帮助