昆山网站建设义搏珠海营销型网站哪家好
昆山网站建设义搏,珠海营销型网站哪家好,青岛建设集团领导班子,网站备案信息可以更改吗核心优势
跨平台支持#xff1a;兼容 Windows、macOS、Linux 等主流操作系统深度系统洞察#xff1a;提供 CPU、内存、磁盘、传感器、网络等详细信息零原生依赖#xff1a;纯 Java 实现#xff0c;无需安装额外组件轻量易用#xff1a;只需添加一个依赖即可快速集成 ✅ 使…核心优势跨平台支持兼容 Windows、macOS、Linux 等主流操作系统深度系统洞察提供 CPU、内存、磁盘、传感器、网络等详细信息零原生依赖纯 Java 实现无需安装额外组件轻量易用只需添加一个依赖即可快速集成✅ 使用 OSHI 可以轻松获取以下系统信息操作系统详情名称、版本、架构、运行时间CPU 监控使用率、核心数、处理器速度内存统计总内存、可用内存、交换分区使用情况磁盘信息分区详情、读写速度网络数据接口信息、IP 地址、带宽使用传感器数据CPU 温度、风扇转速、电压需硬件支持项目集成引入依赖dependency groupIdcom.github.oshi/groupId artifactIdoshi-core/artifactId version6.x.x/version /dependency编写工具类/** * 服务器信息采集工具类 */ public class ServerMonitorUtil { private static final SystemInfo SYSTEM_INFO new SystemInfo(); private static final HardwareAbstractionLayer HARDWARE SYSTEM_INFO.getHardware(); private static final OperatingSystem OS SYSTEM_INFO.getOperatingSystem(); private static final DecimalFormat DF new DecimalFormat(#.00); /** * 获取完整服务器信息 */ public static SystemMonitorRespVO getServerInfo() { SystemMonitorRespVO serverInfo new SystemMonitorRespVO(); // 1. CPU 信息 serverInfo.setCpu(getCpuInfo()); // 2. 内存信息 serverInfo.setMem(getMemInfo()); // 3. 系统信息 serverInfo.setSys(getSysInfo()); // 4. JVM 信息 serverInfo.setPy(getJvmInfo()); // 5. 磁盘信息 serverInfo.setDisks(getDiskInfo()); return serverInfo; } /** * 获取 CPU 信息 */ private static CpuInfoRespVO getCpuInfo() { CpuInfoRespVO cpu new CpuInfoRespVO(); CentralProcessor processor HARDWARE.getProcessor(); // 总核心数 cpu.setCpuNum(processor.getLogicalProcessorCount()); // CPU 使用率采集 3 秒内数据 long[] prevTicks processor.getSystemCpuLoadTicks(); try { Thread.sleep(3000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } long[] ticks processor.getSystemCpuLoadTicks(); long user ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; long sys ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; long idle ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; long total user sys idle; // 使用率保留 1 位小数 cpu.setUsed(NumberUtil.round(100.0 * user / total, 1).doubleValue()); cpu.setSys(NumberUtil.round(100.0 * sys / total, 1).doubleValue()); cpu.setFree(NumberUtil.round(100.0 * idle / total, 1).doubleValue()); return cpu; } /** * 获取系统内存信息 */ private static MemoryRespVO getMemInfo() { MemoryRespVO mem new MemoryRespVO(); GlobalMemory memory HARDWARE.getMemory(); // 总内存字节转 GB long total memory.getTotal(); // 已用内存 long used total - memory.getAvailable(); // 使用率 double usage NumberUtil.round(100.0 * used / total, 1).doubleValue(); // 格式化显示如 16.00 GB mem.setTotal(formatByte(total)); mem.setUsed(formatByte(used)); mem.setFree(formatByte(memory.getAvailable())); mem.setUsage(usage); return mem; } /** * 获取系统基础信息 */ private static SystemInfoRespVO getSysInfo() { SystemInfoRespVO sys new SystemInfoRespVO(); // 服务器名称 sys.setComputerName(OS.getFamily()); // 操作系统 sys.setOsName(OS.getFamily() OS.getVersionInfo().getVersion()); // 系统架构 sys.setOsArch(System.getProperty(os.arch)); // 服务器IP try { sys.setComputerIp(InetAddress.getLocalHost().getHostAddress()); } catch (UnknownHostException e) { sys.setComputerIp(未知); } // 项目运行路径 sys.setUserDir(System.getProperty(user.dir)); return sys; } /** * 获取 JVM 信息 */ private static JvmInfoRespVO getJvmInfo() { JvmInfoRespVO jvm new JvmInfoRespVO(); Properties props System.getProperties(); // JVM 名称 版本 jvm.setName(props.getProperty(java.vm.name)); jvm.setVersion(props.getProperty(java.version)); // Java 安装路径 jvm.setHome(props.getProperty(java.home)); // JVM 启动时间 long startTime ManagementFactory.getRuntimeMXBean().getStartTime(); jvm.setStartTime(DateUtil.formatDateTime(DateUtil.date(startTime))); // 运行时长 long runTime System.currentTimeMillis() - startTime; jvm.setRunTime(formatTime(runTime)); // JVM 内存信息 Runtime runtime Runtime.getRuntime(); // 总内存 long totalMem runtime.totalMemory(); // 已用内存 long usedMem totalMem - runtime.freeMemory(); // 使用率 double usage NumberUtil.round(100.0 * usedMem / runtime.maxMemory(), 1).doubleValue(); jvm.setMemoryTotal(formatByte(totalMem)); jvm.setMemoryUsed(formatByte(usedMem)); jvm.setFree(formatByte(runtime.freeMemory())); jvm.setMemoryUsage(usage); return jvm; } /** * 获取磁盘信息 */ private static ListDiskInfoRespVO getDiskInfo() { ListDiskInfoRespVO diskList new ArrayList(); FileSystem fileSystem OS.getFileSystem(); ListOSFileStore fileStores fileSystem.getFileStores(); for (OSFileStore store : fileStores) { // 过滤无效磁盘如临时盘、大小为0的盘 if (store.getTotalSpace() 0) { continue; } DiskInfoRespVO disk new DiskInfoRespVO(); // 盘符路径 disk.setDirName(store.getMount()); // 文件系统类型 disk.setSysTypeName(store.getType()); // 盘符名称 disk.setTypeName(store.getName()); // 总大小 long total store.getTotalSpace(); // 可用大小 long free store.getUsableSpace(); // 已用大小 long used total - free; // 使用率保留 1 位小数转字符串 double usage NumberUtil.round(100.0 * used / total, 1).doubleValue(); disk.setUsage(DF.format(usage)); // 格式化大小 disk.setTotal(formatByte(total)); disk.setFree(formatByte(free)); disk.setUsed(formatByte(used)); diskList.add(disk); } return diskList; } /** * 字节数格式化转 GB/MB/KB */ private static String formatByte(long bytes) { if (bytes 1024) { return bytes B; } else if (bytes 1024 * 1024) { return DF.format(bytes / 1024.0) KB; } else if (bytes 1024 * 1024 * 1024) { return DF.format(bytes / (1024.0 * 1024)) MB; } else { return DF.format(bytes / (1024.0 * 1024 * 1024)) GB; } } /** * 毫秒数格式化转 天-时-分-秒 */ private static String formatTime(long ms) { long days ms / (1000 * 60 * 60 * 24); long hours (ms % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); long minutes (ms % (1000 * 60 * 60)) / (1000 * 60); long seconds (ms % (1000 * 60)) / 1000; StringBuilder sb new StringBuilder(); if (days 0) { sb.append(days).append(天); } if (hours 0) { sb.append(hours).append(时); } if (minutes 0) { sb.append(minutes).append(分); } sb.append(seconds).append(秒); return sb.toString(); } }编写前端页面略编写后端业务略总结OSHI 是一个功能强大且轻量级的 Java 系统监控库。建议采用专业的应用监控中间件如夜莺、Prometheus Grafana等。