1、查看端口占用的程序pid
lsof -i:[端口号]
2、查看pid对应的进程名信息
ps -ef | grep [pid]
3、linux所有句柄查询
lsof -n|awk ‘{print $2}’|sort|uniq -c |sort -nr|more
第一列是持有句柄数量,第二列是每个进程的PID
4、查看这个PID持有的句柄数
ls /proc/[pid]/fd | wc -l
5、查看当前进程句柄数量限制
sudo cat /proc/[pid]/limits | grep “files”
6、生成JVM堆栈快照文件
jmap -dump:format=b,file=/home/gdsuser/bitagent-20201106/logs/bitagent.hprof 3286
使用%JAVA_HOME%/bin目录下的jvisualvm.exe查看堆栈文件信息,确认问题。
7、查看进程1000条GC状态
jstat -gcutil pid 1000
8、保存线程栈的现场
jstack pid > jstack.log
9、栈的分析很简单,看一下线程数是不是过多,多数栈都在干嘛。
grep ‘java.lang.Thread.State’ logs/jstack.log | wc -l
10、线程状态
grep -A 1 ‘java.lang.Thread.State’ logs/jstack.log | grep -v ‘java.lang.Thread.State’ | sort | uniq -c |sort -n
11、查看类对应的实例数
jmap -histo 3286
12、pstack显示每个进程的栈跟踪
pstack pid
13、查看进程
top -H -p pid
14、显示-bash-4.2#
cp /etc/skel/.bashrc /root/
cp /etc/skel/.bash_profile /root/
15、添加sudo用户
15.1、进入root用户,打开sudoers文件
su root
vi /etc/sudoers
15.2、修改sudoers文件
root ALL=(ALL) ALL下添加一行
postgres ALL=(ALL) ALL
16、添加写权限
chmod u+w /etc/sudoers
进行修改,修改完成之后收回写权限:
chmod u-w /etc/sudoers