# 附录 Ark 使用手册

# 01 Ark 远程调用

我们把一些常用的功能操作写成 qark 远程工具包,方便你在需要的时候可以随时远程调用。我们在 快速开始 文档中下载 lotus 软件就是使用远程调用命令来下载的。这里我们介绍一些其他有用的远程调用脚本。

  1. 获取本机内网 IP:

    qark-client --rsc sys_net_queryer
    

    默认远程工具包第一次执行之后就会缓存到本地,强制拉取最新的远程工具包,使用 --refresh 参数(对所有工具包都适用):

    qark-client --rsc sys_net_queryer --refresh
    
  2. 获取系统信息,比如系统负载,内存信息等:

    qark-client --rsc sys_info
    # 输出 json 格式
    qark-client --rsc sys_info --format=false
    
  3. 获取 CPU 缓存信息:

    qark-client --rsc cpu_cache
    # 输出 json 格式
    qark-client --rsc cpu_cache --format=false
    
  4. 获取 CPU 详细信息:

    qark-client --rsc cpu_info
    # 输出 json 格式
    qark-client --rsc cpu_info --format=false
    
  5. 获取共享 L3 缓存的 CPU 分组:

    qark-client --rsc cpu_l3_cache_cores --start=0 --end=-1 --part=1
    

    可选参数:

    • start: 开始下标,从第 start+1 组核开始返回
    • end: 结束下标,不传入代表返回后面所有的,传入负数表示倒数,如 -1 表示倒数第 1 组
    • part: 二次分组,对每一组核在进行二次拆分,part 必须要能被每一组的核数整数。
  6. 获取共享 L3 缓存的 CPU 分组大小,也就是多少个核共享一组 L3 缓存:

    qark-client --rsc cpu_l3_cache_cores_share
    
  7. 运行 lotus-bench sealing 基准测试,这是运行 Lotus 基准测试工具 的便捷形式:

    # 1. 首先你需要下载 lotus-bench 程序
    wget http://mirrors.yyyun.pro/lotus/1.15.1/20220506/amd/lotus-bench
    chmod +x lotus-bench
    # 2. 运行基准测试
    qark-client --rsc lotus_bench_sealing --sector-size=8MiB
    

    可选参数:

    • storage-dir: 存储路径,默认值:~ 或者 /yuanyu
    • sector-size: 扇区大小,默认值为:512MiB
    • skip-unseal: 跳过 unseal 过程,默认值:true
    • num-sectors: 扇区数量,默认值:1
    • parallel: 并发数,默认值:1
    • skip-commit2:是否跳过 commit2 过程,默认值:true
  8. 自动获取 lotus SDR 加速核分组,该命令会根据你当前 CPU 的信息,自动计算合适的 SDR 加速核分组(每组并行一个 PC1 任务):

    qark-client --rsc lotus_sdr_core_groups --max-pc1=12 --start=0
    # e.g output
    [[0,1],[4,5],[8,9],[12,13],[2,3],[6,7],[10,11],[14,15],[16,17],[20,21],[24,25],[28,29],[18,19],[22,23],[26,27],[30,31]]
    

    可选参数:

    • max-pc1: 最大 PC1 并行数
    • start: 起始下标,从第 start+1 组核开始返回
    • end: 结束下标,不传入代表返回后面所有的,传入负数表示倒数,如 -1 表示倒数第 1 组
  9. 自动计算 lotus SDR producers 值:

    qark-client --rsc lotus_sdr_producers --max-pc1=1 --start=0 --max=4
    

    可选参数:

    • max-pc1: 最大 PC1 并行数
    • start: 起始下标,从第 start+1 组核开始返回
    • end: 结束下标,不传入代表返回后面所有的,传入负数表示倒数,如 -1 表示倒数第 1 组
    • max: sdr_producers 最大值,如果算出来的值超过这个值,则强制返回 max
  10. 获取指定进程的 CPU 亲和力:

    qark-client --rsc proc_cpu_affinity_get --pid=12345
    

    pid 表示进程 ID,必须传入。

  11. 设置指定进程的 CPU 亲和力(为某个进程绑定固定的 CPU):

    qark-client --rsc proc_cpu_affinity_get --pid=12345 --start=0 --end=2
    

    proc_cpu_affinity_get 首选会获取所有共享 L3 缓存的核组,然后通过 startend 下标筛选核组,上述命令表示将第 1 组和第 2 组核绑定到 12345 这个进程上。

    可选参数:

    • pid: 进程 ID
    • start: 开始下标,从第 start+1 组核开始返回
    • end: 结束下标,不传入代表返回后面所有的,传入负数表示倒数,如 -1 表示倒数第 1 组
上次更新: 2022/5/7 12:58:14