linux定位应用问题的一些经常使用命令,特别针对内存和线程分析的dump命令

下面这些命令都是以前遇到内存占用持续升高,cpu持续居高不下或者大幅度震荡下收集信息的方法,其中dump线程信息切记要至少dump3次linux

1.jps找出进程号,找到对应的进程号后面才好继续操做spa

2.linux查看进程详细信息线程

    ps -ef | grep 进程ID  日志

3. dump内存信息orm

    Jmap -dump:format=b,file=YYMMddhhmm.dump pid 进程

4.top查看cpu占用信息内存

    PID:进程的IDform

    USER:进程全部者thread

    PR:进程的优先级别,越小越优先被执行变量

    NInice:值

    VIRT:进程占用的虚拟内存

    RES:进程占用的物理内存

    SHR:进程使用的共享内存

    S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

    %CPU:进程占用CPU的使用率

    %MEM:进程使用的物理内存和总内存的百分比

    TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

    COMMAND:进程启动命令名称

5.定位进程中哪一个cpu高

    ps p 14766 -L -o pcpu,pid,tid,time,tname,stat,psr | sort -n -k1 –r

6.打印线程信息

     jstack 1822 > /opt/thread_dump

7.ps –f查看进程信息

9.su切换用户权限

    su 切换用户,当su的话,好比说。你当前用户为aaa

    你直接su root 你能够认真看下,只是用户变成root。你当前的操做环境仍是在aaa的用户下

    若是加个su - root,就等于你的操做环境跟用户都变成root了!

    你再找找,linux的环境变量$PATH 就知道了!

10.[ -z STRING ] “STRING” 的长度为零则为真

11.执行sh无权限执行,未被识别的服务

    可能你没有为xsetup文件加上可执行权限,想知道有没有可执行权限方法以下:

    1.先su到root。

    2.在你安装的目录下输入命令:“ls -l xsetup”(这是查看文件的详细信息)

    3.你能够看到有一项相似:“-wr--r-wr-”之类的,若是这项里面的看不到有x的,只有w,r的话,证实没有可执行权限

    4.加上可执行权限, 输入命令:“chmod 777 xsetup”

12.find ./ -type f -name "*.log" | xargs grep "xxx"查询日志

相关文章
相关标签/搜索