当前位置:首页 » 操作系统 » linuxjmap

linuxjmap

发布时间: 2023-05-13 13:45:06

linux系统怎么对java应用程序进行性能分析

  • 分析CPU占用的方法和手段:

1. top命令:可以查看实时的CPU使用情况。

2. ps -ef命令:可以查看雹凳纤进程以及进程中线程的当前CPU使用情况以及属于当前状态的采样数据。

3. jstack:Java提供的命令。可以查看某个进程的当前线程栈运行情况。根据这个命令的输出可以定位某个进程的所有线程的当前运行状态、运行代码,以及是否死锁等等粗宽。

4. pstack:Linux命令。可以查看某个进程的当前线程栈运行情况


  • 分析内存性能的方法和技巧:

1.top命令:可以查看实时的内存使用情况。

2.jmap -histo:live [pid],然后分析具体的对象源仿数目和占用内存大小,从而定位代码。

jmap -mp:live,format=b,file=xxx.xxx [pid],然后利用MAT工具分析是否存在内存泄漏等等。

㈡ linux jmap如何使用

jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查虚毕系统中什么对象最多,各种对象所占内存的大小。

命令格式:

jmap[options]pid
-mp:[live,]format=b,file=<filename>
--mp堆到文件,live指明是活着的对象,file指定文件名

-F强制,在jmap-mp或jmap-histo中使用,如果pid没有相应的回复
-J提供jvm选项,如:-J-Xms256m

㈢ Linux下如何定位JAVA进程直接内存的泄漏及top和jmap查看内存的关系

问题1:top的RES值和JAVA堆内存之间到底是一个什么关系?
——大概1、2个月有个帖子讨论过,挺长的,不过一下子找不到了;总的来说,两者很难找到非常精确匹配的计算关系,因为两者统计的口径是不同的;操作系统关心的是被应用程序所占用的,而JVM则只是关心堆中被分配出去的;这里面有JVM自己开销的、有碎片内存无法使用的、还有已使用完毕待回收的 等等问题。
——总的来说,我觉得如果不是为了底层开发之类的问题,不值得在此问题进行深入研究。

问题2:桥卖如何定位JAVA进程直接内存的泄档答漏?
——很遗憾,并没有什么招数来直接定位,否则内存泄露就不会是一个让大家闻风丧胆的问题了;各类工具都只行消慧是提供给你一定的手段去发现征兆、缩小怀疑范围,没有说直接帮你定位,那听起来就不是IT而是神话了。
——常规招数就是:范围 与 层次,两个方向不断通过测试和监控来缩小 怀疑范围,从而最终定位内存泄漏点。

㈣ 几种常见的操作tomcat的linux命令

重启tomcat
ps x 查看pid
kill -9 pid 杀死进程
/app/tomcat/bin/startup.sh 启动tomcat
追踪日志
tail -f /app/tomcat/log/*.log
配置文件
vi /app/tomcat/webapp/root/WEB-INF/server.properties 查看服务器配置
vi /app/tomcat/webapp/root/WEB-INF/web.xml 查看后端文件位置
vi /app/tomcat/webapp/root/WEB-INF/common-applicationcontext.xml 查看数据库
查看内存溢出
top 查看系统性能
jmap -heap pid 打印heap的概要信息
jmap -histo pid 打印每个class的实例数目,内存占用,类全名信息
jmap -mp:format=b,file=heap.bin pid 输出heap信息到heap.bin文件
jhat -J-mx768m heap.bin 分析heap.bin文件
最好使用eclipse的MAT查看heap.bin,相比jhat等更加直观,容易发现内存溢出
查看死锁
jstack -l pid > deadlock.jstack 输出stack信息到deadlock.jstack
vi deadlock.jstack 使用vi查看
数据库导出
/usr/local/mysql/bin/mysqlmp -u root -p test > test_new.sql
数据库导入
/usr/local/mysql/bin/mysql -u root -p test < test_new.sql
选择性查看日志
grep * /app/tomcat/log/*.log|cut -d '#' -f 8-9|sort -t '#' -u

㈤ linux下java mp文件在哪儿

如果所使用的应用服务器是tomact,mp文件默认在catalina.out日志文件里;
如果不是则可以查看java环境变量设置的位置,也就知道在mp文件的位置了;
如果没有生成mp文件或者是生成错误,请按照一下几种方法来修复:
系统默认的core文件生成路径是 /var/logs,但是 /var/logs 目录并非系统自带的,系统初始安装默认自带的是/var/log,最终导致该系统出现core mp后并没能生成core文件,因此如何查询和修改系统默认的core mp文件生产路径呢?方法如下:
一. 查询core mp文件路径:
方法1:
# cat /proc/sys/kernel/core_pattern
方法2:
# /sbin/sysctl kernel.core_pattern
二. 修改core mp文件路径:
方法1:临时修改:修改/proc/sys/kernel/core_pattern文件,但/proc目录本身是动态加载的,每次系统重启都会重新加载,因此这种方法只能作为临时修改。
/proc/sys/kernel/core_pattern
例:echo ‘/var/log/%e.core.%p’ > /proc/sys/kernel/core_pattern
方法2:永久修改:使用sysctl -w name=value命令。
例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p

㈥ 面试常问的 25+ 个 Linux 命令

本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用 --help 查看帮助或者直接通过google搜索学习。

find / -name filename.txt 根据名称查找/目录下的filename.txt文件。

find . -name "*.xml" 递归查找所有的xml文件

find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件

grep -H 'spring' *.xml 查找所以有的包含spring的xml文件

find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件

ls -l | grep '.jar' 查找当前目录中的所有jar文件

grep 'test' d* 显示所有以d开头的文件中包含test的行。

grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。

grep '[a-z]{5}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

ps -ef|grep tomcat 查看所有有关tomcat的进程

kill -9 19979 终止线程号位19979的进程

ls -al

pwd

cp source dest 复制文件

cp -r sourceFolder targetFolder 递归复制整个文件夹

scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝

mkdir newfolder

rmdir deleteEmptyFolder 删除空目录

rm -rf deleteFile 递归删除目录中所有内容

mv /temp/movefile /targetFolder

mv oldNameFile newNameFile

su -username

chmod 777 file.java file.java 的权限 -rwxrwxrwx ,r表示读、w表示写、x表示可执行

tar -czf test.tar.gz /test1 /test2

tar -tzf test.tar.gz

tar -xvzf test.tar.gz

head -n 10 example.txt

tail -n 10 example.txt

tail -f exmaple.log 这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。

sudo rm a.txt 使用管理员身份删除文件

netstat -tln | grep 8080 查看端口8080的使用情况

lsof -i :8080

ps aux|grep java 查看java进程

ps aux 查看所有进程

tree a

wget http://file.tgz

curl http://file.tgz

ping www.just-ping.com

ssh userName@ip

echo $JAVA_HOME 打印java home环境变量的值

java javac jps ,jstat ,jmap, jstack

svn git maven

欢迎补充!~

㈦ linux怎么查看jvm正在使用的哪个垃圾回收器

搜一档胡下jps和团蠢陵jmap命塌戚令,是JDK提供的,jps能显示出jvm的进程号,然后用jmap显示jvm的配置和信息

㈧ jmap-各种option参数说明

jmap(JVM Memory Map):作用一带滑方面是获取mp文件(堆转储快照文件,二进制文件),它还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信蠢明腊息、类加载信息等。

开发人员可以在控制台输入命令"jmap -help"查阅jmap工具的具体使用方式和一些标准选项配置。

它的基本使用语法为:

其中option包括:

说明:这些参数和linux下输入显示的命令多少会有不同,包槐告括也受jdk版本的影响。

热点内容
数据库二级映射 发布:2025-05-15 15:14:09 浏览:476
3d文件加密 发布:2025-05-15 15:05:17 浏览:361
jquery拖拽上传图片 发布:2025-05-15 14:53:36 浏览:129
我的世界电脑服务器需要正版吗 发布:2025-05-15 14:38:53 浏览:694
大华录像机哪里有安卓设备 发布:2025-05-15 14:25:06 浏览:808
录制脚本方案 发布:2025-05-15 14:25:04 浏览:165
奇石脚本业 发布:2025-05-15 14:23:44 浏览:680
android中的socket 发布:2025-05-15 14:22:15 浏览:409
apph5源码 发布:2025-05-15 14:19:51 浏览:667
2d游戏按键精灵脚本教程 发布:2025-05-15 14:10:15 浏览:279