linux-java常用查看内存/进程/文件命令

本文详细介绍了Linux系统中用于监控和管理Java进程的各种命令,包括查看进程信息、JVM参数、内存使用、堆转储以及垃圾收集情况。通过`ps`, `jinfo`, `jps`, `jmap`, `jstat`和`jhat`等工具,可以有效地进行JVM性能优化和故障排查。同时,文章还提到了`lsof`用于查找占用特定端口的进程,以及`df`和`du`命令来检查磁盘空间。这些实用的Linux命令对于系统管理员和开发者来说至关重要。
#查看进程的运行信息
[root@mofang ~]# ps axo pid,ppid,comm,pmem,lstart | grep java
 2022     1 java             0.6 Thu Feb 17 15:57:40 2022
 2072     1 java             2.9 Thu Feb 17 15:57:41 2022
 2169     1 java             2.9 Thu Feb 17 15:58:22 2022

#查看jvm参数
[root@localhost service]# jinfo -flags 1332
Non-default VM flags: -XX:CICompilerCount=4 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=null -XX:InitialHeapSize=515899392 -XX:MaxHeapSize=8241807360 -XX:MaxNewSize=2747269120 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=171966464 -XX:OldSize=343932928 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
#查看进程id
[root@mofang001 /]# jps
14370 jar
2022 QuorumPeerMain
2072 Bootstrap
2169 Bootstrap
16446 Jps
# 将live进程生成java堆转储快照
[root@localhost ~]# jmap -dump:live,file=b.heap 32239
Dumping heap to /root/b.heap ...
#查看jvm,堆栈,使用情况
使用 jmap -heap PID 生成java堆的详细信息

[root@mofang001 /]# jmap -histo 2599942|head -n20
#监控jvm,每5秒打印一次,目标进程24019
[root@localhost stat]# jstat -gc 26876 50000
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
1024.0 1024.0  0.0   384.0  35840.0   9665.7   171008.0   90558.0   101376.0 94724.2 11776.0 10595.6  63947 1170.809  11    848.489 2019.298
#S0C:第一个幸存区的大小
#S1C:第二个幸存区的大小
#S0U:第一个幸存区的使用大小
#S1U:第二个幸存区的使用大小
#EC:伊甸园区的大小
#EU:伊甸园区的使用大小
#OC:老年代大小
#OU:老年代使用大小
#MC:方法区大小
#MU:方法区使用大小
#CCSC:压缩类空间大小
#CCSU:压缩类空间使用大小
#YGC:年轻代垃圾回收次数
#YGCT:年轻代垃圾回收消耗时间
#FGC:老年代垃圾回收次数
#FGCT:老年代垃圾回收消耗时间
#GCT:垃圾回收消耗总时间 
# 查看堆内存各区域的使用率以及GC情况

附赠linux常用查看命令

#查看对外暴漏端口被哪个进程占用
[root@mofang stat]# lsof -i :3306
mysqld   8661 mysql   20u  IPv6     89245      0t0  TCP *:mysql (LISTEN)
#locate命令::列出my.cnf文件的位置
[root@mofang stat]# locate my.cnf
/data/grafana/mysqld_exporter-0.12.1.linux-amd64/.my.cnf
/etc/my.cnf
/etc/my.cnf.origin
/etc/my.cnf.rpmsave
ls -lh(list files):命令用于显示指定工作目录下之内容
[root@mofang stat]# ls -lh
total 119M
-rw-r--r-- 1 root root  14K Apr  6 14:13 application-prod.yaml
-rw-r--r-- 1 root root  12K Dec 14 10:46 application-prod.yamlbak
-rw-r--r-- 1 root root  14K Mar 23 16:19 application-prod-副本.yaml
drwxr-xr-x 2 root root 4.0K Apr  7 22:12 arthas-output
#df:查看磁盘相关信息:包括占有情况,挂载目录位置
[root@mofang stat]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
tmpfs            16G  752K   16G   1% /run
tmpfs            16G     0   16G   0% /s
#查看目录占有磁盘空间大小:a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。
[root@mofang stat]# du -ah --max-depth=1
4.0K    ./start_stat
4.0K    ./arthas-output
12K     ./application-prod.yamlbak
119M    ./备份jar
16K     ./application-prod.yaml
0       ./stat.log
16K     ./application-prod-副本.yaml
248K    ./script
119M    ./stat.jar
4.0K    ./start-stat.sh
0       ./start.log
238M    .
#du -sh:查看所在目录所占用磁盘空间的大小
[root@mofang stat]# du -sh
238M    .
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
二、du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小

#查看指定目录下的所有文件中含有"xxx"的文件:i:忽略大小写 --binary-files=without-match:忽略二进制文件
grep -rni 'xxx' /tmp/ --binary-files=without-match

grep -C100 --color=auto  '415515934630992070'  travel_access.log

#linux系统资源占有查询
ps auxw | head -1;ps auxw|sort -rn -k4|head -5 
//查看系统整体的负载,-p查看指定端口(查看两个)
top -p 63942 -p 23501
//每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
top -d 2 -c -p 66487
//ps aux(一段时间平均使用的cpu)是根据各类时间算出的cpu占用率,top是实时的
//批量删除查询出来的进程
ps -aux|grep "api"|awk '{print "kill -9 "$2}'|sh
[root@localhost snort-2.9.20]# ps aux --sort=-%mem | head -n 11 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND elastic+ 77086 2.8 45.3 5926628 1749404 ? Ssl 13:12 2:50 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -Djava.security.manager=allow -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-7622450778843719240 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:ErrorFile=/var/log/elasticsearch/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m -XX:+UnlockDiagnosticVMOptions -XX:G1NumCollectionsKeepPinned=10000000 -Xms1885m -Xmx1885m -XX:MaxDirectMemorySize=988807168 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -Des.distribution.flavor=default -Des.distribution.type=rpm -Des.bundled_jdk=true -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid --quiet logstash 78580 1.6 19.4 4889740 751868 ? SNsl 13:29 1:23 /usr/share/logstash/jdk/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djdk.io.File.enableADS=true -Djruby.compile.invokedynamic=true -Djruby.jit.threshold=0 -Djruby.regexp.interruptible=true -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/urandom -Dlog4j2.isThreadContextMapInheritable=true -cp /usr/share/logstash/logstash-core/lib/jars/checker-qual-3.37.0.jar:/usr/share/logstash/logstash-core/lib/jars/commons-codec-1.14.jar:/usr/share/logstash/logstash-core/lib/jars/commons-compiler-3.1.0.jar:/usr/share/logstash/logstash-core/lib/jars/commons-logging-1.2.jar:/usr/share/logstash/logstash-core/lib/jars/error_prone_annotations-2.21.1.jar:/usr/share/logstash/logstash-core/lib/jars/failureaccess-1.0.1.jar:/usr/share/logstash/logstash-core/lib/jars/google-java-format-1.1.jar:/usr/share/logstash/logstash-core/lib/jars/guava-32.1.3-jre.jar:/usr/share/logstash/logstash-core/lib/jars/j2objc-annotations-2.8.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-annotations-2.14.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-core-2.14.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-databind-2.14.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-dataformat-cbor-2.14.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-dataformat-yaml-2.14.1.jar:/usr/share/logstash/logstash-core/lib/jars/janino-3.1.0.jar:/usr/share/logstash/logstash-core/lib/jars/javassist-3.26.0-GA.jar:/usr/share/logstash/logstash-core/lib/jars/jruby-complete-9.2.20.1.jar:/usr/share/logstash/logstash-core/lib/jars/jsr305-3.0.2.jar:/usr/share/logstash/logstash-core/lib/jars/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-1.2-api-2.17.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-api-2.17.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-core-2.17.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-jcl-2.17.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-slf4j-impl-2.17.1.jar:/usr/share/logstash/logstash-core/lib/jars/logstash-core.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.commands-3.6.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.contenttype-3.4.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.expressions-3.4.300.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.filesystem-1.3.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.jobs-3.5.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.resources-3.7.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.runtime-3.7.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.app-1.3.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.common-3.6.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.preferences-3.4.1.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.registry-3.5.101.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.jdt.core-3.10.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.osgi-3.7.1.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.text-3.5.101.jar:/usr/share/logstash/logstash-core/lib/jars/reflections-0.9.11.jar:/usr/share/logstash/logstash-core/lib/jars/slf4j-api-1.7.30.jar:/usr/share/logstash/logstash-core/lib/jars/snakeyaml-1.33.jar org.logstash.Logstash --path.settings /etc/logstash kibana 87484 3.8 6.1 11977548 235664 ? Rsl 14:45 0:19 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli/dist --logging.dest="/var/log/kibana/kibana.log" --pid.file="/run/kibana/kibana.pid" --deprecation.skip_deprecated_settings[0]="logging.dest" admin 2435 0.6 3.3 3716180 131136 ? Sl 07:12 3:02 /usr/bin/gnome-shell admin 2780 0.0 1.3 1317520 52164 ? Sl 07:12 0:03 /usr/bin/gnome-software --gapplication-service root 1812 0.2 1.1 384988 46096 tty1 Ssl+ 07:12 1:06 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-Ycs6w0/database -seat seat0 -nolisten tcp vt1 admin 3206 0.1 0.3 766860 13744 ? Sl 07:13 0:36 /usr/libexec/gnome-terminal-server admin 2718 0.0 0.2 984720 10380 ? Sl 07:12 0:01 nautilus-desktop --force root 522 0.0 0.2 48724 8236 ? Ss 07:12 0:01 /usr/lib/systemd/systemd-journald geoclue 3057 0.0 0.1 457860 7508 ? Ssl 07:13 0:00 /usr/libexec/geoclue -t 5 检查有哪些不需要的文件占用内存,并删除
最新发布
05-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值