docker iotop :OSError: Netlink error: No such file or directory

在容器内使用iotop ,错误信息:

raceback (most recent call last):
  File "/usr/sbin/iotop", line 16, in <module>
    main()
  File "/usr/lib/python2.6/site-packages/iotop/ui.py", line 559, in main
    main_loop()
  File "/usr/lib/python2.6/site-packages/iotop/ui.py", line 549, in <lambda>
    main_loop = lambda: run_iotop(options)
  File "/usr/lib/python2.6/site-packages/iotop/ui.py", line 447, in run_iotop
    return curses.wrapper(run_iotop_window, options)
  File "/usr/lib64/python2.6/curses/wrapper.py", line 43, in wrapper
    return func(stdscr, *args, **kwds)
  File "/usr/lib/python2.6/site-packages/iotop/ui.py", line 437, in run_iotop_window
    taskstats_connection = TaskStatsNetlink(options)
  File "/usr/lib/python2.6/site-packages/iotop/data.py", line 113, in __init__
    self.family_id = controller.get_family_id('TASKSTATS')
  File "/usr/lib/python2.6/site-packages/iotop/genetlink.py", line 54, in get_family_id
    m = self.conn.recv()
  File "/usr/lib/python2.6/site-packages/iotop/netlink.py", line 190, in recv
    raise err
OSError: Netlink error: No such file or directory (2)

iotop是通过内核的taskstats接口获取统计信息的。taskstats是基于generic netlink实现的,而且taskstats不支持net namespace。

static struct genl_family family = {
	.id		= GENL_ID_GENERATE,
	.name		= TASKSTATS_GENL_NAME,
	.version	= TASKSTATS_GENL_VERSION,
	.maxattr	= TASKSTATS_CMD_ATTR_MAX,
};


static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb)
{
 int i, n = 0;
 struct genl_family *rt;
 struct net *net = sock_net(skb->sk);
 int chains_to_skip = cb->args[0];
 int fams_to_skip = cb->args[1];
 for (i = chains_to_skip; i < GENL_FAM_TAB_SIZE; i++) {
  n = 0;
  list_for_each_entry(rt, genl_family_chain(i), family_list) {
   if (!rt->netnsok && !net_eq(net, &init_net))///don't support netnamespace
    continue;


转载于:https://www.cnblogs.com/wuyida/p/6300865.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值