Iotop使用

文章目录

Iotop依赖及编译

源码路径:https://github.com/Tomas-M/iotop#how-to-build-from-source (GitHub - Tomas-M/iotop: A top utility for IO)

1:内核配置

在编译内核make menuconfig的时候一定要把下面选项选上:

General setup ---> CPU/Task time and stats accounting ->

+ Export task/process statistics through netlink

+ Enable per-task delay accounting

+ Enable extended accounting over taskstats

+ Enable per-task storage I/O accounting

+CONFIG_TASKSTATS=y

+CONFIG_TASK_DELAY_ACCT=y

+CONFIG_TASK_XACCT=y

+CONFIG_TASK_IO_ACCOUNTING=y

+CONFIG_SCHED_INFO=y

2: 环境配置

在执行iotop出现 Error opening terminal: vt102,请继续往下看:

在板子上如下操作/etc/profile加入

export TERM=vt100

export TERMINFO=/usr/share/terminfo

mkdir /usr/share/terminfo/v -p

然后copy自己的pc主机上的

/usr/share/terminfo/v/vt100

到板子上的/usr/share/terminfo/v/目录下

3.依赖库ncurses

源码路径:https://invisible-island.net/ncurses/ncurses.html#download_ncurses

3.1 Ncurses的编译配置

./configure --with-shared --without-debug --with-ticlib --disable-stripping --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc --prefix="$PWD/.../libncurses"

然后make && make install.libs && make install.lncludes

然后使用服务器的gcc 在全编译一次 能够生成terminfo 把这里的v/vt100保存下来

4. Iotop的编译及修改

需要修改Makefile,然后需要将Ncurses的成果物放到iotop的跟目录

c 复制代码
INCLUDES := ./include                    新增
CC=aarch64-linux-gnu-gcc        新增

# PKG_CONFIG?=pkg-config
# NCCC?=$(shell $(PKG_CONFIG) --cflags ncursesw)
# NCLD?=$(shell $(PKG_CONFIG) --libs ncursesw)
# ifeq ("$(NCLD)","")
# NCCC:=$(shell $(PKG_CONFIG) --cflags ncurses)
# NCLD:=$(shell $(PKG_CONFIG) --libs ncurses)
# endif
# ifeq ("$(NCLD)","")
# NCCC:=
# NCLD:=-lncursesw
# endif

CFLAGS += -L ./lib/ -Bstatic -lncurses     新增
CFLAGS += $(addprefix -I,$(INCLUDES))      新增

5.测试效果如下:

相关推荐
火车叼位36 分钟前
Bash 实现 IDE 式补全的组件与配置
linux·运维
潘正翔1 小时前
k8s高级_调度器Deployment
linux·运维·云原生·容器·kubernetes·jenkins·devops
H_oRIZoN_1 小时前
Linux入门DAY27(文件IO(系统调用)详解|open/read/write/lseek)
java·linux·服务器
海兰1 小时前
【插件】Logbook 插件完全指南(适配 Ubuntu 24.04)
linux·运维·人工智能·ubuntu·agent·openclaw
好评1241 小时前
【Linux】Socket编程TCP
linux·网络·tcp/ip
前进吧-程序员2 小时前
从零入门:eBPF 是什么、解决什么问题以及它的历史
linux
RisunJan2 小时前
Linux命令-whoami(显示当前有效用户名)
linux·运维·chrome
yunwei374 小时前
eBPF 教程:用 BPF Qdisc 实现出口限速
linux·云原生·开源
mengge.cloud4 小时前
Linux三剑客 grep sed awk 小白基础教程
linux·运维·服务器·网络
盐焗鹌鹑蛋4 小时前
【Linux】进程间通信与进程池
linux