说是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进制数值即可。