Linux

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
软链接
> ln -s 源文件 目标文件

压缩/解压tar.gz
压缩
> tar -czf posts.tar.gz   target_folder
解压
> tar -xzf posts.tar.gz   target_folder
scp命令
从本地复制到远程
> scp local_file remote_username@remote_ip:remote_folder

从远程复制到本地
> scp remote_username@remote_ip:remote_folder local_file

ab工具压力测试
> ab -n 1000 -c 1000 请求地址
	-n后面的是请求数
	-c后面的是并发数

linux工具

1.整体资源查看——top命令

 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
> top [options]
options参数
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数

**在top命令执行过程中可以使用的一些交互命令**
h 显示帮助画面,给出一些简短的命令总结说明;
k 终止一个进程;
i 忽略闲置和僵死进程,这是一个开关式命令;
q 退出程序;
r 重新安排一个进程的优先级别;
S 切换到累计模式;
s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O 改变显示项目的顺序;
l 切换显示平均负载和启动时间信息;
m 切换显示内存信息;
t 切换显示进程和CPU状态信息;
c 切换显示命令名称和完整命令行;
M 根据驻留内存大小进行排序;
P 根据CPU使用百分比大小进行排序;
T 根据时间/累计时间进行排序;
w 将当前设置写入~/.toprc文件中。

2.监控内存/CPU——vmstat命令

vmstat可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。vmstat 工具提供了一种低开销的系统性能观察方式。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
> vmstat [options] [delay [count]]
options参数
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息。

delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷

3.监控I/O——iostat命令

iostat命令 被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

1
2
3
4
5
6
7
8
9
> iostat [options] [<interval> [<count>]]
-c:仅显示CPU使用情况;
-d:仅显示设备利用率;
-k:显示状态以千字节每秒为单位,而不使用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;
-t:显示每个报告产生时的时间;
-V:显示版号并退出;
-x:显示扩展状态。

4.多功能诊断器——pidstat工具

1
2
3
4
5
6
7
8
9
> pidstat [options] [interval] [times]
options参数:
-u 默认参数,显示各个进程的 CPU 统计信息
-r 显示各个进程的内存使用情况
-d 显示各个进程的 IO 使用
-w 显示各个进程的上下文切换
-p PID 指定 PID
比如常见的每一秒查看 IO 统计,统计 10 次
> pidstat -d 1 10

Python相关

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
supervisor服务端启动
> supervisord  -c gears/etc/supervisord.conf
superviosor客户端管理
> supervisorctl -c gears/etc/supervisord.conf
[使用 supervisor 管理进程 - 李林克斯](http://liyangliang.me/posts/2015/06/using-supervisor/)

virtualenv虚拟环境
> mkdir 目录名称
> virtualenv --distribute 目录  --python=py3
[用virtualenv建立多个Python独立开发环境 — 简明现代魔法](http://www.nowamagic.net/academy/detail/1330228)

Java相关

1.查看Java进程 ——jps命令

1
2
3
4
5
> jps -m -l -v
 参数 
    -m 用于输出传递给Java进程(主函数)的参数
    -l 用于输出主函数的完整路径
	-v 显示传递给Java虚拟机的参数

2.查看虚拟机运行时信息——jstat命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
> jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

option 参数选项
-t 可以在打印的列加上Timestamp列,用于显示系统运行的时间
-h 可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头
vmid Virtual Machine ID 进程的 pid
interval 执行每次的间隔时间,单位为毫秒
count 用于指定输出多少次记录,缺省则会一直打

> jstat -options

-class 显示ClassLoad的相关信息;
-compiler 显示JIT编译的相关信息;
-gc 显示和gc相关的堆信息;
-gccapacity    显示各个代的容量以及使用情况;
-gcmetacapacity 显示metaspace的大小
-gcnew 显示新生代信息;
-gcnewcapacity 显示新生代大小和使用情况;
-gcold 显示老年代和永久代的信息;
-gcoldcapacity 显示老年代的大小;
-gcutil   显示垃圾收集信息;
-gccause 显示垃圾回收的相关信息(通-gcutil,同时显示最后一次或当前正在发生的垃圾回收的诱因;
-printcompilation 输出JIT编译的方法信息

3.查看虚拟机参数——jinfo命令

1
2
3
4
5
jinfo <option> <pid>
option可以为
-flag <name> 打印指定Java虚拟机的参数值
-flag [+/-]<name> 设置或者取消Java虚拟机参数的布尔值  (并非所有参数都支持动态修改)
-flag <name>=<value> 设置指定Java虚拟机参数的值

4.导出堆到文件——jmap命令

1
2
3
4
生成Java程序的对象统计信息
> jmap -histo 进程ID > /tmp/s.txt
生成Java程序当前的堆快照
> jmap -dump:format=b,file=/tmp/heap.hprof 进程ID 

5.查看线程堆栈——jstack命令

1
2
导出锁相关的信息
> jstack -l 进程ID > /tmp/s.txt

6.多功能命令行——jcmd命令

1
2
3
4
5
6
7
查看当前所有Java虚拟机
> jmcd -l

针对每一个虚拟机,使用help命令列出所支持的命令
> jcmd 进程ID help
比如
> jcmd 进程ID VM.versio

参考

http://einverne.github.io/post/2019/05/pidstat-usage.html

https://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html

https://wangchujiang.com/linux-command/