导航:首页 > 编程语言 > java内存使用率

java内存使用率

发布时间:2022-07-20 18:24:33

A. 如何查看java进程大量占用内存

如何查看java进程大量占用内存
你好,方法如下:
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
(1)top
top命令是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
$ top -u oracle
内容解释:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
(2)pmap
可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:
$ pmap -d 14596
(3)ps
如下例所示:
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5
其中rsz为实际内存,上例实现按内存排序,由大到小

B. 如何在java中读取proc配置文件获取 cpu和内存占用率

(1) 处理器使用率
(2) 内存使用率
(3) 流入流出数据包
(4) 整体网络负载
这些数据分别要从/proc/stat、/proc/meminfo、/proc/net/dev三个文件中提取,其实在嵌入式linux中一般都是vlan划分的接口,在/proc/net/vlan/接口名的文件中可以看到具体某一接口的流量。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。

C. java怎么实时获取本地cpu使用率 内存使用率

Runtime.getRuntime().exec("vmstat 1");

D. Java程序占用内存太高了怎么办

E. java 获取linux内存使用率

整数的除法,是整除的
先转成double类型的
~
~
~
~

F. 一个开发java的人需要多大内存

最少是4G。
分析:
java开发需要安装jdk、eclipse、oracle等软件;
java运行需要tomcat 、JVM和程序的运行内存;
以上的这些软件基本都运行起来的话,大概需要2G多内存,而电脑本身还需要一部分,所以最低配置也得4G,建议开发用6G或者是8G。

G. java获取系统的内存总量和已使用量,各程序的cpu使用百分比以及总量

使用sigar来监控,简单方便!
使用说明:以下代码需要配合sigar的dll文件来用,需要将dll文件放到JDK下的bin文件夹下,供sigar程序调用,还需要sigarjar包。以下程序经过测试,完全可用!

有关jar包跟dll文件我上传不了,私信我,我发你importjava.net.InetAddress;
importjava.net.UnknownHostException;
importjava.util.Map;
importjava.util.Properties;
importjava.util.Timer;
importjava.util.TimerTask;

importorg.hyperic.sigar.CpuInfo;
importorg.hyperic.sigar.CpuPerc;
importorg.hyperic.sigar.FileSystem;
importorg.hyperic.sigar.FileSystemUsage;
importorg.hyperic.sigar.Mem;
importorg.hyperic.sigar.NetFlags;
importorg.hyperic.sigar.NetInterfaceConfig;
importorg.hyperic.sigar.NetInterfaceStat;
importorg.hyperic.sigar.OperatingSystem;
importorg.hyperic.sigar.Sigar;
importorg.hyperic.sigar.SigarException;
importorg.hyperic.sigar.Swap;
importorg.hyperic.sigar.Who;

publicclassRuntimeTest{
publicstaticvoidmain(String[]args){
try{
Timertimer=newTimer();//定时器
TimerTasktask=newTimerTask(){
publicvoidrun(){
try{
memory();
}catch(SigarExceptione){
e.printStackTrace();
}
}
};
try{
timer.schele(task,0,3000);//每3秒取一次
}catch(Exceptionex){
ex.printStackTrace();
}
//System信息,从jvm获取
//property();//根据自己的需求,都可以放到定时器中定时获取
//cpu信息
//cpu();
//内存信息
//memory();
//操作系统信息
//os();
//用户信息
//who();}catch(Exceptione1){
e1.printStackTrace();
}
}

privatestaticvoidproperty()throwsUnknownHostException{
Runtimer=Runtime.getRuntime();
Propertiesprops=System.getProperties();
InetAddressaddr;
addr=InetAddress.getLocalHost();
Stringip=addr.getHostAddress();
Map<String,String>map=System.getenv();
StringuserName=map.get("USERNAME");//获取用户名
StringcomputerName=map.get("COMPUTERNAME");//获取计算机名
StringuserDomain=map.get("USERDOMAIN");//获取计算机域名
System.out.println("用户名:"+userName);
System.out.println("计算机名:"+computerName);
System.out.println("计算机域名:"+userDomain);
System.out.println("本地ip地址:"+ip);
System.out.println("本地主机名:"+addr.getHostName());
System.out.println("JVM可以使用的总内存:"+r.totalMemory());
System.out.println("JVM可以使用的剩余内存:"+r.freeMemory());
System.out.println("JVM可以使用的处理器个数:"+r.availableProcessors());
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java的安装路径:"+props.getProperty("java.home"));
System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虚拟机规范名称:"+props.getProperty("java.vm.specification.name"));
System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version"));
System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
System.out.println("Java的虚拟机实现名称:"+props.getProperty("java.vm.name"));
System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version"));
System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender"));
System.out.println("Java运行时环境规范名称:"+props.getProperty("java.specification.name"));
System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version"));
System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系统的名称:"+props.getProperty("os.name"));
System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator"));
System.out.println("路径分隔符:"+props.getProperty("path.separator"));
System.out.println("行分隔符:"+props.getProperty("line.separator"));
System.out.println("用户的账户名称:"+props.getProperty("user.name"));
System.out.println("用户的主目录:"+props.getProperty("user.home"));
System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
}

privatestaticvoidmemory()throwsSigarException{
Sigarsigar=newSigar();
Memmem=sigar.getMem();
floattotal=mem.getTotal();
floatused=mem.getUsed();
//内存总量
System.out.println("内存总量:"+mem.getTotal()/1024L/1024L+"Mav");
//当前内存使用量
System.out.println("当前内存使用量:"+mem.getUsed()/1024L/1024L+"Mused");
//当前内存剩余量
System.out.println("当前内存剩余量:"+mem.getFree()/1024L/1024L+"Mfree");
//当前内存使用率
System.out.println("内存使用率:"+used/total*100+"%");
Swapswap=sigar.getSwap();
//交换区总量
System.out.println("交换区总量:"+swap.getTotal()/1024L/1024L+"Mav");
//当前交换区使用量
System.out.println("当前交换区使用量:"+swap.getUsed()/1024L/1024L+"Mused");
//当前交换区剩余量
System.out.println("当前交换区剩余量:"+swap.getFree()/1024L/1024L+"Mfree");
}

privatestaticvoidcpu()throwsSigarException{
Sigarsigar=newSigar();
CpuInfoinfos[]=sigar.getCpuInfoList();
CpuPerccpuList[]=null;
cpuList=sigar.getCpuPercList();
for(inti=0;i<infos.length;i++){//不管是单块CPU还是多CPU都适用
CpuInfoinfo=infos[i];
System.out.println("第"+(i+1)+"块CPU信息");
System.out.println("CPU的总量MHz:"+info.getMhz());//CPU的总量MHz
System.out.println("CPU生产商:"+info.getVendor());//获得CPU的卖主,如:Intel
System.out.println("CPU类别:"+info.getModel());//获得CPU的类别,如:Celeron
System.out.println("CPU缓存数量:"+info.getCacheSize());//缓冲存储器数量
printCpuPerc(cpuList[i]);
}
}

privatestaticvoidprintCpuPerc(CpuPerccpu){
System.out.println("CPU用户使用率:"+CpuPerc.format(cpu.getUser()));//用户使用率
System.out.println("CPU系统使用率:"+CpuPerc.format(cpu.getSys()));//系统使用率
System.out.println("CPU当前等待率:"+CpuPerc.format(cpu.getWait()));//当前等待率
System.out.println("CPU当前错误率:"+CpuPerc.format(cpu.getNice()));//
System.out.println("CPU当前空闲率:"+CpuPerc.format(cpu.getIdle()));//当前空闲率
System.out.println("CPU总的使用率:"+CpuPerc.format(cpu.getCombined()));//总的使用率
}

privatestaticvoidos(){
OperatingSystemOS=OperatingSystem.getInstance();
//操作系统内核类型如:386、486、586等x86
System.out.println("操作系统:"+OS.getArch());
System.out.println("操作系统CpuEndian():"+OS.getCpuEndian());//
System.out.println("操作系统DataModel():"+OS.getDataModel());//
//系统描述
System.out.println("操作系统的描述:"+OS.getDescription());
//操作系统类型
//System.out.println("OS.getName():"+OS.getName());
//System.out.println("OS.getPatchLevel():"+OS.getPatchLevel());//
//操作系统的卖主
System.out.println("操作系统的卖主:"+OS.getVendor());
//卖主名称
System.out.println("操作系统的卖主名:"+OS.getVendorCodeName());
//操作系统名称
System.out.println("操作系统名称:"+OS.getVendorName());
//操作系统卖主类型
System.out.println("操作系统卖主类型:"+OS.getVendorVersion());
//操作系统的版本号
System.out.println("操作系统的版本号:"+OS.getVersion());
}

privatestaticvoidwho()throwsSigarException{
Sigarsigar=newSigar();
Whowho[]=sigar.getWhoList();
if(who!=null&&who.length>0){
for(inti=0;i<who.length;i++){
//System.out.println("当前系统进程表中的用户名"+String.valueOf(i));
Who_who=who[i];
System.out.println("用户控制台:"+_who.getDevice());
System.out.println("用户host:"+_who.getHost());
//System.out.println("getTime():"+_who.getTime());
//当前系统进程表中的用户名
System.out.println("当前系统进程表中的用户名:"+_who.getUser());
}
}
}


}

H. java怎么查看系统的cpu利用率,内存利用率

使用sigar来监控,简单方便!使用说明:以下代码需要配合sigar的dll文件来用,需要将dll文件放到JDK下的bin文件夹下,供sigar程序调用,还需要sigar jar包。以下程序经过测试,完全可用! 有关jar包跟dll文件 我上传不了

I. 电脑Java8update内存使用率高

可能是代码原因导致的问题,也可能是其他原因导致的问题。
使用dstat和top查看内存使用最高的应用,查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况,使用top,使用dstat可以看到java应用整体内存使用率超过了70%,其中pid为16494的进程一个应用占了28.7的内存,使用ps查看16494的线程情况,命令:psp16494-L-opcpu,pmem,pid,tid,time,tname,cmd,看到16494这个pid的应用产生了很多线程。在分析前需要将17417这个id转换为16进制,方便查找信息12[root@localhost~]#printf"%x "17417,440916进制为4409。将pid为16494的应用打印到日志中1[root@localhost~]#jstack-l16494>jstack.log。查看内存堆栈信息,1[root@localhost~]#vimjstack.log,[root@localhost~]#vimjstack.log在日志信息中查找刚刚转换的4409。可以看到这个线程状态为WAITING通过查看日志发现有大量的waitingoncondition。1,parkingtowaitfor<0x0000000085dce510>存在大量线程等待被唤醒,占用大量内存。

J. 怎么通过java程序查看java程序自身的CPU使用率和内存使用情况

取得进程ID,调用系统API取得相关值(Windows和Linux是不一样的的)。

阅读全文

与java内存使用率相关的资料

热点内容
pythonoa项目 浏览:307
android杜比音效 浏览:341
杀手47为什么连接不了服务器 浏览:108
静态路径命令 浏览:533
一直编译不过怎么办 浏览:829
汽车串联并联算法 浏览:458
助眠解压的声音音频小哥哥 浏览:277
pythoncmd换行 浏览:376
linux取消行号 浏览:355
安卓原生系统官网是什么 浏览:444
底部主图源码 浏览:878
服务器崩了有什么提示 浏览:780
远程海康服务器用什么浏览器 浏览:232
解压报纸图片 浏览:956
python微信公众号开发平台 浏览:895
知识付费网站java源码 浏览:255
方舟怎么做命令管理 浏览:849
linux流量异常 浏览:676
单片机如何给电脑加密码 浏览:519
如何删掉多余的服务器 浏览:220