Linux常用命令

记录工作中常用的linux命令。

System

  • 查看Linux发行版本
1
uname -m && cat /etc/*release
  • 添加ssh密钥   使用ssh-add将密钥添加到ssh-agent中,就不用每次都要输入密码。
1
ssh-add
  • 查看端口占用进程
1
2
3
sudo netstat -nalp | grep port

sudo lsof -i:port

CPU

CPU性能分析

  使用perf分析CPU性能1。并生成火焰图。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo perf record --freq FREQ --call-graph MODE -p PID

--event: cpu-clock, perf record监控的指标为cpu周期。
--freq: default: 4000 Hz。
--call-graph: [fp, lbr, dwarf]。fp容易被编译器优化等问题,在调用栈中出现unknown。
编译设置-fno-omit-frame-pointer,也不完全保证所有函数调用通过fp能获取到正确的信息。
编译设置-g,即是生成dwarf格式的调试信息。
-g:perf record额外记录函数的调用关系,记录的是栈指针。相当于--call-graph=fp。
-p:指定需要record的进程pid,$(pidof PROCESS_NAME)
sudo perf report -i perf.data

  使用FlameGraph2生成火焰图。

1
2
3
sudo perf script -i perf.data &> perf.unfold
./stackcollapse-perf.pl perf.unfold &> perf.folded
./flamegraph.pl perf.folded > perf.svg

查看CPU信息

1
2
3
4
# 睿频信息
turbostat

cpupower frequency-info

Netrowk

rsync

  rsync相比wget支持断点重传,速度更快。

1
2
3
# 将本地文件file拷贝到远程主机
# 当ssh端口不是默认的22时,使用-e "ssh -p ${PORT}"指定端口。
rsync -avuP -e "ssh -p ${PORT}" file user@ip:path

Memory

查看内存信息

1
sudo dmidecode -t memory

numactl

1
2
# 查看numa对应的CPU核,distance表示numa与核的距离,越近效率越高。
numactl -H
Licensed under CC BY-NC-SA 4.0