- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.StringTokenizer;
- http://m.nvzi91.cn/gongjingai/29421.ht
- import org.apache.commons.io.FileSystemUtils;
- public class OSUtils {
- /**
- * 功能:可用磁盘
- * */
- public static int disk() {
- try {
- long total = FileSystemUtils.freeSpaceKb("/home");
- double disk = (double) total / 1024 / 1024;
- return (int) disk;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return 0;
- }
- /**
- * 功能:获取Linux系统cpu使用率
- * */
- public static int cpuUsage() {
- try {
- Map<?, ?> map1 = OSUtils.cpuinfo();
- Thread.sleep(5 * 1000);
- Map<?, ?> map2 = OSUtils.cpuinfo();
- http://m.nvzi91.cn/gongjingfeida/29422.html
- long user1 = Long.parseLong(map1.get("user").toString());
- long nice1 = Long.parseLong(map1.get("nice").toString());
- long system1 = Long.parseLong(map1.get("system").toString());
- long idle1 = Long.parseLong(map1.get("idle").toString());
- long user2 = Long.parseLong(map2.get("user").toString());
- long nice2 = Long.parseLong(map2.get("nice").toString());
- long system2 = Long.parseLong(map2.get("system").toString());
- long idle2 = Long.parseLong(map2.get("idle").toString());
- long total1 = user1 + system1 + nice1;
- long total2 = user2 + system2 + nice2;
- float total = total2 - total1;
- long totalIdle1 = user1 + nice1 + system1 + idle1;
- long totalIdle2 = user2 + nice2 + system2 + idle2;
- float totalidle = totalIdle2 - totalIdle1;
- float cpusage = (total / totalidle) * 100;
- return (int) cpusage;
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return 0;
- }
- /**
- * 功能:CPU使用信息
- * */
- public static Map<?, ?> cpuinfo() {
- InputStreamReader inputs = null;
- BufferedReader buffer = null;
- Map<String, Object> map = new HashMap<String, Object>();
- try {
- inputs = new InputStreamReader(new FileInputStream("/proc/stat"));
- buffer = new BufferedReader(inputs);
- String line = "";
- while (true) {
- line = buffer.readLine();
- if (line == null) {
- break;
- }http://m.nvzi91.cn/gongjingmilan/29423.html
- if (line.startsWith("cpu")) {
- StringTokenizer tokenizer = new StringTokenizer(line);
- List<String> temp = new ArrayList<String>();
- while (tokenizer.hasMoreElements()) {
- String value = tokenizer.nextToken();
- temp.add(value);
- }
- map.put("user", temp.get(1));
- map.put("nice", temp.get(2));
- map.put("system", temp.get(3));
- map.put("idle", temp.get(4));
- map.put("iowait", temp.get(5));
- map.put("irq", temp.get(6));
- map.put("softirq", temp.get(7));
- map.put("stealstolen", temp.get(8));
- break;
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- buffer.close();
- inputs.close();
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- return map;
- }
- /**
- * 功能:内存使用率
- * */m.nvzi91.cn
- public static int memoryUsage() {
- Map<String, Object> map = new HashMap<String, Object>();
- InputStreamReader inputs = null;
- BufferedReader buffer = null;
- try {
- inputs = new InputStreamReader(new FileInputStream("/proc/meminfo"));
- buffer = new BufferedReader(inputs);
- String line = "";
- while (true) {
- line = buffer.readLine();
- if (line == null)
- break;
- int beginIndex = 0;
- int endIndex = line.indexOf(":");
- if (endIndex != -1) {
- String key = line.substring(beginIndex, endIndex);
- beginIndex = endIndex + 1;
- endIndex = line.length();
- String memory = line.substring(beginIndex, endIndex);
- String value = memory.replace("kB", "").trim();
- map.put(key, value);
- }
- }
- long memTotal = Long.parseLong(map.get("MemTotal").toString());
- long memFree = Long.parseLong(map.get("MemFree").toString());
- long memused = memTotal - memFree;
- long buffers = Long.parseLong(map.get("Buffers").toString());
- long cached = Long.parseLong(map.get("Cached").toString());
- double usage = (double) (memused - buffers - cached) / memTotal * 100;
- return (int) usage;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- buffer.close();
- inputs.close();
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- }
- return 0;
- }
- }
[Java学习] Java获取Linux系统cpu使用率
最新推荐文章于 2024-08-19 19:55:55 发布