长期总结 - Linux性能分析命令

perf [1] perf 是基于内核子系统的Linux的性能计数器,也被称为 perf_events,它提供了为所有事件进行性能分析的框架,perf 由两部分组成: 内核系统调用,用于提供对这些性能数据的访问 用户空间工具,用于提供收集,显示分析这些性能数据的用户空间程序 由于 perf 是内核的一部分,但要想使用 perf 还需要安装另外一部分,通常情况下安装的版本是Linux内核版本,如操作系统内核版本为 5.10 那么安装 linux-tool 后则为 5.10 bash 1 2 3 4 $ apt-get install linux-perf $ perf --version perf version 5.10.149 各系统下的包名与安装 Ubuntu/Debian: linux-perf | linux-tools ;apt-get install linux-perf CentOS/Fedora: perf ;yum install -y perf list - 列出可用事件描述符 使用 perf 子命令 list 可以列出所有的 perf 可测量事件 bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 perf list List of pre-defined events (to be used in -e): branch-instructions OR branches [Hardware event] branch-misses [Hardware event] cache-misses [Hardware event] cache-references [Hardware event] cpu-cycles OR cycles [Hardware event] instructions [Hardware event] stalled-cycles-backend OR idle-cycles-backend [Hardware event] stalled-cycles-frontend OR idle-cycles-frontend [Hardware event] alignment-faults [Software event] bpf-output [Software event] context-switches OR cs [Software event] cpu-clock [Software event] cpu-migrations OR migrations [Software event] dummy [Software event] emulation-faults [Software event] major-faults [Software event] minor-faults [Software event] page-faults OR faults [Software event] task-clock [Software event] duration_time [Tool event] L1-dcache-load-misses [Hardware cache event] L1-dcache-loads [Hardware cache event] L1-dcache-prefetches [Hardware cache event] L1-icache-load-misses [Hardware cache event] L1-icache-loads [Hardware cache event] branch-load-misses [Hardware cache event] branch-loads [Hardware cache event] dTLB-load-misses [Hardware cache event] dTLB-loads [Hardware cache event] iTLB-load-misses [Hardware cache event] iTLB-loads [Hardware cache event] list 子命令后还可以加过滤器以查看对应类型的事件,示例:...

 ·  · 

bash shell常用示例

该文整理一些常用的shell用法,及语法,并非介绍如何使用 变量 变量可分为两类:环境变量ENV(全局)和局部变量。 bash环境变量 变量名 含义 _= 上一条命令的最后一个参数 BASH_VERSION=“4.1.2(1)-release” 当前bash实例的版本号 COLORS="/etc/DIR_COLORS" COLUMNS=80 设置该变量就给shell编辑模式和选择命令定义了编辑窗口的宽度 CVS_RSH=“ssh” DIRSTACK 代表目录栈当前的内容 EUID=0 为在shell启动时被初始化的当前用户的有效ID G_BROKEN_FILENAMES=1 GROUPS=() 当前用户所属组 HISTFILE=/root/.bash_history 历史记录文件的全路径 HISTFILESIZE=50 历史文件能包含的最大行数 HISTSIZE=50 记录在命令行历史文件中的命令行数 HOME=/root 当前用户家目录 HOSTNAME= 当前主机机器名称 HOSTTYPE=x86_64 IFS=$’\t\n' 内容字段分隔符,一般是空格符、制表符、和换行符,用于由命令替换,循环结构中的表和读取的输入产生的词的字段划分。 INPUTRC=/etc/inputrc readline启动文件的文件名。取代默认的~/.inputrc JAVA_HOME=/app/jdk1.6 KDENIR=/usr KDE IS PRELINKED=1 LANG=zh_CN.GB18030 LESSONPEN LINES=36 LONGNAME=root 登陆的用户名 LS_COLORS=xx MACHTYPE=x86_64-redhat-linux-gnu 包含一个描述正在运行bash的系统串 MAILCHECK=60 这个参数定义shell将隔多长时间(以秒为单位检查一次由参数MAILPATH或MAILFILE)指定的文件,看看是否有邮件到达。默认600秒 MAIL=/var/spool/mail/root 邮件全路径 OLDPWD=/root 前一个当前工作目录 OPTERR=1 如果设置为1,秒年十时毫,来自getopts内置命令的错误信息。 OPTIND=1 下一个有getopts内置命令处理的参数序号 OSTYPE=linux-gnu 自动设置称一个串,该串标书正在运行bash的操作系统,默认值有系统决定 PATH 全局PATH路径。命令搜索路径。一个有冒号分隔的目录列表,shell用它来搜索命令。默认路径有系统决定,并且由安装bash的管理员设置。 PIPESTATUS=([0]=0 [1]=1) 一个数组,包含一列最进在管道执行的前台作业的进程退出状态值。 PPID=1112 父进程的进程ID PS1=[\u@\h \W]$ 主提示符串,默认值是$ PS2= > 次提示符串,默认值是> PS4=+ 当开启追踪时使用的调试提示符串,默认值是+,追踪可用set-x开启。 PWD 当前用户家目录。 SHELL=/bin/bash SHLVL=1 每启动一个bash实例就将其加1 TMOUT=3600 退出前等待超时的秒数。 UID=0 当前用户的UID,在shell启动时初始化。 USER=root 当前用户的用户名,在shell启动时初始化。 自定义环境变量 export...

 ·  · 

awk常用案例

AWK运算符 运算符 说明 赋值运算符 = += -= *= /= %= ^= **= 逻辑运算符 || 逻辑或 && 逻辑与 正则运算符 ~ !~ 匹配正则表达式和不匹配正则表达式 关系运算符 < <= > >= != == 关系运算符 算术运算符 + - 加,减 *** / &** 乘,除与求余 + - ! 一元加,减和逻辑非 ^ *** 求幂 ++ – 增加或减少,作为前缀或后缀 其他运算符 $ 字段引用 空格 字符串链接符 ?: 三目运算符 In 数组中是否存在某键值 内置变量 变量名 属性 $0 当前记录 1 n 当前记录的第 n 个字段 FS 输入字段分隔符 默认是空格 RS 输入记录分割符 默认为换行符 NF 当前记录中的字段个数,就是有多少列 NR 已经读出的记录数,就是行号,从 1 开始 OFS 输出字段分隔符 默认也是空格 ORS 输出的记录分隔符 默认为换行符 特殊模式 - - BEGIN awk 将在读取任何输入行之前立即执行BEGIN 中指定的动作 END awk 将在它正式退出前执行 END中指定的动作 用法 去掉空白:awk 'NF' file...

 ·  · 

长期总结 - Linux网络命令合集

Overview 作为系统管理员或程序员,经常需要诊断分析和解决网络问题,而配置、监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分。本文将总结常用与Linux网络管理的命令与使用示例,保持长期更新与更正。 IP iproute2 包含网络、路由、ARP缓存等的管理与配置的ip命令,用来取代传统的 ifconfig 与 route;ip 使用第二个参数,指定在对象执行的操作(例如,add delete show)。 ip 命令是配置网络接口的强大工具,任何 Linux 系统管理员都应该知道。它用于启动或关闭接口、分配和删除地址和路由、管理 ARP 缓存等等。 ip 常用的子命令有: link (l) 网络接口管理 address (a) IP地址管理 route (r) 路由表管理 neigh (n) arp表管理 各系统下的包名与安装 Ubuntu/Debian: iproute2 ;apt install iproute2 CentOS/Fedora: iproute2 ;yum install -y iproute2 Apline:iproute2 ;apk add iproute2 ip link ip link 用于管理和显示网络接口 获取网络接口信息ip link show 查看特定设备信息 bash 1 ip link show dev [device] 查看所有网络接口的统计信息(如传输或丢弃的数据包,错误等等): bash 1 ip -s link 查看单个网络接口的类似信息:...

 ·  · 

awesome git command

Tag command describe git tag 列出所有tag git tag -l v1.* 列出符合条件的tag(筛选作用) git tag [tag_name] 创建轻量tag(无-m标注信息) git push REMOTE TAG 推送一个tag到远端 git push origin –tags* 推送所有本地tag到远程 git push origin :refs/tags/[REMOTE TAG] git push –delete REMOTE TAG 删除远程指定tag git fetch origin [remote_tag_name] 拉取远程指定tag git show [tag_name] 显示指定tag详细信息 git push origin [local_tag_name] 推送指定本地tag到远程 git tag NEW_TAG OLD_TAG git tag -d OLD_TAG 重命名本地tag git tag -d [local_tag_name] 删除本地指定tag git ls-remote –tags origin 查询远程tags git tag -a [tag_name] 创建含注解的tag git fetch origin [remote_tag_name]git checkout [remote_tag_name] git branch checkout远端tag到本地 Checking 检查工作目录与暂存区的状态...

 ·  ·