• 方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息


     CPU使用率:

    InputStream is = null;
    InputStreamReader isr = null;
    BufferedReader brStat = null;
    StringTokenizer tokenStat = null; // 用来分隔String的应用类
    try {
    System.out.println("Get usage rate of CUP : ");

    Process process = Runtime.getRuntime().exec("top -b"); // top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源使用情况。
    is = process.getInputStream(); // 可以读取新开启的程序的 System.out.print 输出的内容
    isr = new InputStreamReader(is); // 将字节流转换为字符流。
    brStat = new BufferedReader(isr); // BufferedReader 流能够读取文本行
    brStat.readLine();
    brStat.readLine();

    tokenStat = new StringTokenizer(brStat.readLine());
    tokenStat.nextToken();
    System.out.println("用户空间占用CPU的百分比 : " + tokenStat.nextToken());
    tokenStat.nextToken();
    System.out.println("内核空间占用CPU的百分比 : " + tokenStat.nextToken());
    tokenStat.nextToken();
    tokenStat.nextToken();
    tokenStat.nextToken();
    String cpuFree = tokenStat.nextToken();

    System.out.println("空闲CPU百分比 : " + cpuFree);
    Float free = new Float(free);

    Float usage=1 - free.floatValue() / 100

    //内存:

    OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory
    .getOperatingSystemMXBean();

    // 虚拟内存

    long totalVirtualMemory = osmxb.getTotalSwapSpaceSize() / mb;
    // 总的物理内存
    long totalMemorySize = osmxb.getTotalPhysicalMemorySize() / mb;
    // 剩余的物理内存
    long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize() / mb;
    // 已使用的物理内存
    long usedMemory = (osmxb.getTotalPhysicalMemorySize() - osmxb
    .getFreePhysicalMemorySize()) / mb;

     磁盘空间:

    Process pro = null;
    Runtime r = Runtime.getRuntime();
    String command = "df -h";
    pro = r.exec(command);
    BufferedReader in = new BufferedReader(new InputStreamReader(
    pro.getInputStream()));
    String line = null;
    System.out.println("目前所有文件系统的可用空间及使用情形 Filesystem Size Used Avail Use% Mounted on");
    while ((line = in.readLine()) != null) {
    // String[] Info = line.split("\s+");
    System.out.println(in.readLine());
    }
    in.close();
    pro.destroy();

    Linux下java获取CPU、内存、磁盘IO、网络带宽使用率

  • 相关阅读:
    iOS new Date() 报invalid Date
    Windows查找端口对应进程
    Dbvisualizer Free版本无sql自动提示功能解决方案
    Docker
    更换k8s集群,或者创建集群使用用户不对,导致ranchar无法显示容器处理
    linux下mysql5.7.30安装
    ansible 使用redis缓存
    tr命令
    ipvsadm安装配置NAT
    2019新电脑主板安装win10系统
  • 原文地址:https://www.cnblogs.com/chenhuili/p/5606672.html
Copyright © 2020-2023  润新知