#cpu #performance #benchmarking #linux-process #affinity #per-thread #utility

app cpumap

Linux系统上进程和线程的CPU亲和力的GUI/TUI查看和编辑工具

3个不稳定版本

0.2.1 2024年4月27日
0.2.0 2024年4月21日
0.1.0 2023年9月10日

#65 in 性能分析

MIT 许可证

3.5MB
4K SLoC

CPUMap - 查看和编辑CPU亲和力

关于

CPUMap 是一个图形(TUI和GUI)工具,用于查看和编辑Linux系统上进程的CPU亲和力。

屏幕截图

Video: (0.1.0) Browse and view CPU affinity of processes

Video: (0.1.0) Specify cores for a process to use, or how its threads should be assigned to cores

Video: (0.1.0) Run a process only on specified cores

GUI TUI

用例

  • 基准测试
    • 每个核心设置一个线程以限制竞争
    • 每个核心设置多个线程以最大化竞争
    • 强制程序使用指定核心以模拟不同CPU的性能
  • 游戏
    • 强制游戏仅使用Intel Alder Lake或更新的CPU的P核心
    • 强制游戏仅使用Ryzen 7950x的3D V-cache核心
    • 强制游戏在AMD Zen 3或更新的CPU上使用单个CCD
  • 性能分析
    • 强制程序仅运行在一种CPU(P核心或E核心)上,以从CPU性能计数器获得一致值。
  • 工作站
    • 防止资源密集型程序占用所有核心以确保系统响应能力。
  • 高性能应用程序
    • 将IDS的线程运行到从NIC接收数据包的核心。
    • 通过在每个AMD Epyc CPU的CCD上仅运行一个线程来最大化每个线程的缓存。

请注意,如果您不知道自己在做什么,调整CPU亲和力不太可能提高性能 - 通常,最好让操作系统调度器完成其工作。

功能

  • 操作系统支持
    • Linux
    • 可能在其他类Unix操作系统上运行(基于hwloc库),但到目前为止只测试了Linux。
  • GUI和TUI前端(具有相同的功能)
  • 使用缓存和逻辑核心(“超线程”)可视化CPU拓扑层次结构
  • 查看所有运行进程的亲和力
  • 模糊搜索运行进程
  • 设置进程及其每个单个线程可以使用的核心
    • 手动
    • “线程顺序”,例如每个线程一个核心、L3等。
  • 运行具有指定亲和力的程序
    • 运行程序并控制由这些程序启动的子进程的亲和力

安装

  • TUI构建:cargo install cpumap
  • GUI构建: cargo install --no-default-features --features gui cpumap

或者获取linux x64的二进制文件

您可能需要安装hwloc库;名称或其Linux软件包通常以libhwloc开头。

运行

cpumap

许可证

根据MIT许可证授权,请参阅文件LICENSE

依赖项

~5–42MB
~696K SLoC