Linux豆知识

说是linux豆知识,其实主要是运维相关的。

查看一个进程打开的文件

进程的很多状态都可以在/proc/$pid目录中查看。
查看打开的文件可以看/proc/$pid/fd目录。
NM进程也是通过查询这个目录得知container内存占用的。

awk中如何表示单引号

awk使用'{}'定义代码块,所以直接定义一个包含单引号的变量就会出错,比如'{a="'";}'
正确方法是用16进制的ASCII码(其他一些字符也是类似方法):
awk -F '#' 'BEGIN{a="";}{a=a"\x27,\x27"$3;}END{print a;}'

查看CPU占用最高的java线程

首先获得JVM的pid,然后查看线程top -H -p $pid(JVM的线程是映射到系统的线程上的)。
找到CPU最高的线程对应的id,转成16进制。
jstack -l $pid打印出JVM的堆栈,查找对应的16进制数值即可。