在Docker内启用perf

今天在学习 极客时间的系列课程-《 Linux性能优化实战》时,通过Docker运行了一个容器,需要借助perf来分析性能瓶颈,正常启动后,在容器内通过apt-get install -y linux-tools安装好了perf工具,但是启动时,却提示以下信息:

┌─Error:───────────────────────────────────────────────────────────┐
│No permission to enable cycles event.                             │
│                                                                  │
│You may not have permission to collect system-wide stats.         │
│                                                                  │
│Consider tweaking /proc/sys/kernel/perf_event_paranoid,           │
│which controls use of the performance events system by            │
│unprivileged users (without CAP_SYS_ADMIN).                       │
│                                                                  │
│The current value is 3:                                           │
│                                                                  │
│  -1: Allow use of (almost) all events by all users               │
│>= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK│
│>= 1: Disallow CPU event access by users without CAP_SYS_ADMIN    │
│>= 2: Disallow kernel profiling by users without C                │
│                                                                  │
│                                                                  │
│Press any key...                                                  │
└──────────────────────────────────────────────────────────────────┘

提示没有权限,需要更改 /proc/sys/kernel/perf_event_paranoid 文件,然后尝试执行:

$ echo 0 > /proc/sys/kernel/perf_event_paranoid
bash: /proc/sys/kernel/perf_event_paranoid: Read-only file system

解决办法:
需要使用 –privileged 参数,所以必须要重新启动容器,重新安装相关package.
启动容器时:docker run --privileged xxx 即可. 再次执行perf top -g -p 1385
查看分析效果

阅读全文

今天在Linux下使用shell的时候,发现当我想使用Ctrl+箭头进行快速跳跃的时候,并没有出现预期的 光标 移动,而是出现了 5D, 5C 的字样。 这个很奇怪,查下相关资料,可以这样避免: 把以下两行添加到 ~/.inputrc文件中: "\e[1;5C": forward-word # ctrl + right<br /> "\e[1;5D": backward-word # ctrl + left 退出shell再重新登录,就可以解决了。

阅读全文

使用oh-my-zsh时,同时使用了screen插件,oh-my-zsh对screen有个优化,会自动的变更当前window的title,这个功能虽然看起来很好用,但对我个人来说,很是不习惯,因为我自己有对每个window命名的习惯,每个window干什么自己都记得很清楚,他一来了就给我重命名,搞的我很不习惯,所以,我需要把这个oh-my-zsh自动更改screen的title的情况关闭掉。 查找了相关资料后,找到了一个方法,其实很简单。在 .zshrc 的配置文件里,添加一行: 就可以了。

阅读全文

大家共用的开发机io不正常,磁盘空间总是被莫名其妙的占满,怀疑是某些东西在不断的生成日志,,想看下具体是那些进程在使用IO,需要安装一个iotop, 使用命令sudo yum install iotop,安装成功,但是运行iotop时提示 No module named iotop.ui To run an uninstalled copy of iotop, launch iotop.py in the top directory 开始还以为是没安装好,卸载了重新安装,问题依然存在。 后来仔细分析了提示信息:No mudule name xxx 应该是python的提示信息,由于服务器上默认的python版本2.4太低,我们自己安装了2.6的版本,并且把/usr/bin/python指向了2.6版本的python,而使用yum安装的库在python2.4的路径下,这就导致直接运行iotop时出现模块不存在的信息,之前yum也有同样的问题。 解决方法也很简单,只需要把安装的iotop -> /usr/bin/iotop第一行的python运行环境由#!/usr/bin/python改为#!/usr/bin/python2.4即可。

阅读全文

centos下启用snmp

安装 Net-SNMP CentOS及其它RedHat系列产品提供了net-snmp的二进制包。我们可以直接从源里安装。 说明:net-snmp-devel是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk。 配置 Net-SNMP 以上命令,创建一个snmpv3用户,只读,使用MD5,用户名为jiankongbao,密码为snmp@jiankongbao。 注意:运行之前请先停用net-snmp服务。 运行 Net-SNMP 运行 Net-SNMP 服务的方法比较简单,不过Net-SNMP服务的名字是snmpd。 如果要加入开机自动运行服务列表: 检测 Net-SNMP 我们可以使用 snmpwalk 来检测snmp服务是否正常开启。 如果一切正常,就会返回正常结果。 有关snmpwalk的参数说明,请参见其man文档。

阅读全文

作者的图片

DigDeeply

Technology Stack: Golang/PHP/Openresty, and so on…

Web Development Engineer

Beijing China