查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息

文章目录
- 摘要
- 1. 查询CPU使用率命令:top -bn1 | grep \"Cpu(s)\" | awk '{split($0,arr,\" \");print 100-arr[8]}'
- 2. 查询内存命令(单位:G):top -bn1 | grep \"KiB Mem\" | awk '{split($0,arr,\" \");print arr[4]/1024/1024,arr[8]/1024/1024}'
- 3.查询磁盘命令:df -h / | tail -n +2 | grep -v "Filesystem" | awk '{split($0,arr," ");print arr[2],arr[3],arr[5]}'
- 4.查询网络IO命令:ifstat
- 5.查询文件服务器中数据库空间占用大小命令:df -h /home/ems/3rdparty/mysql/data
- 6.查询每秒存储队列信息命令:vmstat -d|grep sda|awk '{print $11}'
- 7.查询IOPS信息命令:iostat -d|grep sda|awk '{print $3" "$4}'
- 8.查询文件系统中磁盘使用情况命令:df -BG
- 代码
摘要
1. 查询CPU使用率命令:top -bn1 | grep “Cpu(s)” | awk ‘{split($0,arr," ");print 100-arr[8]}’
[root@unm5800 ~]# top -bn1 | grep "Cpu(s)" | awk '{split($0,arr," ");print 100-arr[8]}'
8.7
2. 查询内存命令(单位:G):top -bn1 | grep “KiB Mem” | awk ‘{split($0,arr," ");print arr[4]/1024/1024,arr[8]/1024/1024}’
[root@unm5800 ~]# top -bn1 | grep "KiB Mem" | awk '{split($0,arr," ");print arr[4]/1024/1024,arr[8]/1024/1024}'
15.1709 9.70124
3.查询磁盘命令:df -h / | tail -n +2 | grep -v “Filesystem” | awk ‘{split($0,arr," ");print arr[2],arr[3],arr[5]}’
[root@unm5800 ~]# df -h / | tail -n +2 | grep -v "Filesystem" | awk '{split($0,arr," ");print arr[2],arr[3],arr[5]}'
296G 153G 55%
4.查询网络IO命令:ifstat
[root@unm5800 ~]# ifstat
#kernel
Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
lo 10764K 0 10764K 0 18446744070881M 0 18446744070881M 0 0 0 0 0 0 0 0 0
enp91s0f0 9181K 0 19534K 0 18446744071947M 0 220464K 0 0 0 0 0 0 0 0 0
enp91s0f1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eno1 609746 0 1161K 0 128777K 0 940272K 0 0 4546 0 0 0 0 0 0
enp91s0f2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eno2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
enp91s0f3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
enp0s20f0u1u6 31847 0 0 0 2316K 0 0 0 0 0 0 0 0 0 0 0
virbr0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
docker0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-070bd1b4b466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-08fd260a964c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-67b9049e39d6 1494 0 1494 0 59760 0 170316 0 0 0 0 0 0 0 0 0
br-e3d56b9f14ab 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-014f940f0996 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vethf216528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth930c642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth5bb57ee 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth154692a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vethc30949a 1494 0 1494 0 80676 0 170316 0 0 0 0 0 0 0 0 0
veth821f11e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth6bb839e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth9671271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
这些字段是用于描述ifstat命令输出结果中的网络接口的信息。下面是对这些字段的介绍:
- ifstat <网络接口名称>
- Interface(接口):网络接口的名称。
- RX Pkts/Rate(接收数据包数/速率):接收的数据包数量和速率。
- TX Pkts/Rate(发送数据包数/速率):发送的数据包数量和速率。
- RX Data/Rate(接收数据量/速率):接收的数据量(以字节为单位)和速率。
- TX Data/Rate(发送数据量/速率):发送的数据量(以字节为单位)和速率。
- RX Errs/Drop(接收错误/丢弃):接收过程中产生的错误和丢弃的数据包数量。
- TX Errs/Drop(发送错误/丢弃):发送过程中产生的错误和丢弃的数据包数量。
- RX Over/Rate(接收溢出/速率):接收缓冲区溢出次数和速率。
- TX Coll/Rate(发送冲突/速率):发送时发生碰撞的次数和速率。 这些字段提供了关于网络接口的
详细统计信息,包括数据包数量、数据量、速率、错误情况、丢弃情况、溢出情况和碰撞情况等。通过观察这些字段的数值,可以了解网络接口的使用情况、性能状况和可能存在的问题。
5.查询文件服务器中数据库空间占用大小命令:df -h /home/ems/3rdparty/mysql/data
[root@unm5800 ~]# df -h /home/ems/3rdparty/mysql/data
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 296G 153G 128G 55% /
6.查询每秒存储队列信息命令:vmstat -d|grep sda|awk ‘{print $11}’
[root@unm5800 ~]# vmstat -d|grep sda|awk '{print $11}'
28415
vmstat -d命令
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sda 6321733 2992979 326537984 192604637 16335233 11611252 558374392 397953929 0 159463
dm-0 2017377 0 126201641 106958407 7052267 0 129722136 163552294 0 85875
dm-1 4396348 0 35174488 92541369 10793514 0 86348112 1687958320 0 21982
dm-2 3184149 0 165098377 75003459 6532775 0 342299704 396611035 0 89434
根据您提供的 vmstat -d 命令输出,磁盘统计信息中显示了以下设备:
- sda:这是一个磁盘设备的名称,通常代表物理磁盘。它可能是你的系统上的主要硬盘。
- dm-0、dm-1、dm-2:这些是表示设备映射(Device Mapper)的块设备名称。在 Linux 系统中,dm- 表示逻辑卷(Logical Volume)或软件 RAID(Redundant Array of Independent Disks)。
Device Mapper 是 Linux 内核提供的一个模块,用于进行逻辑卷管理、软件 RAID、加密存储等操作。这些逻辑卷或软件 RAID 经过设备映射后,可以在操作系统中当作普通块设备使用。
因此,vmstat -d 命令输出显示了系统上的物理磁盘 sda 和经过设备映射的逻辑卷或软件 RAID dm-0、dm-1、dm-2 的磁盘统计信息。
根据您提供的 vmstat -d 命令输出中的 sec 值为 159463,它表示每秒的输入/输出操作数。这个值是计算从系统启动到当前时刻的累积值。
在 vmstat -d 命令的输出中,sec 表示系统每秒钟处理的输入和输出操作的数量。这包括从磁盘读取的数据量、向磁盘写入的数据量以及其他可能的输入/输出操作(如网络数据传输等)。
因此,sec 值代表每秒的输入/输出操作数,既包括读取操作也包括写入操作。
7.查询IOPS信息命令:iostat -d|grep sda|awk ‘{print $3" "$4}’
[root@unm5800 ~]# iostat -d|grep sda|awk '{print $3" "$4}'
220.44 3219.56
iostat -d 是一个 Linux 命令,用于显示块设备的输入/输出统计信息。该命令会提供有关磁盘和存储设备的各种性能指标。
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 2023年08月16日 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 17.50 126.18 215.67 163243972 279015092
dm-0 7.00 48.77 50.08 63099436 64789492
dm-1 11.74 13.59 33.37 17587244 43174056
dm-2 7.51 63.79 132.21 82525552 171049324
运行 iostat -d 命令会显示如下信息:
- Device(设备):列出了系统中的每个块设备,如硬盘驱动器、固态硬盘等。
- tps(每秒传输请求数):表示每秒传输到设备的 I/O 请求的数量。包括读请求和写请求。
- kB_read/s(每秒读取数据量):表示每秒从设备读取的数据量。
- kB_wrtn/s(每秒写入数据量):表示每秒写入设备的数据量。
- kB_read(读取的总数据量):表示自系统启动以来从设备读取的总数据量。
- kB_written(写入的总数据量):表示自系统启动以来写入设备的总数据量。
这些指标可以帮助你了解块设备的性能状况,包括每秒的传输请求数量、读写速度以及设备的总体活动情况。
8.查询文件系统中磁盘使用情况命令:df -BG
[root@unm5800 ~]# df -BG
文件系统 1G-块 已用 可用 已用% 挂载点
devtmpfs 8G 0G 8G 0% /dev
tmpfs 8G 1G 8G 1% /dev/shm
tmpfs 8G 1G 7G 11% /run
tmpfs 8G 0G 8G 0% /sys/fs/cgroup
/dev/sda1 296G 153G 128G 55% /
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/a42d4eb53de76f220eadbacbeecf268c53bc130615f5faf1b0472801bcae4492/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/59b75e561bd8b29088b503779940edbd2a0ad5518994e55a01db625407dfcf12/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/c7a3fd966d533eff6c199de317f6e815d6a1147665a7d81370fa71f4320df410/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/e3c1fe4e379a56b230e40d07d17cce6ba0330aebf3d25e85aa5d9e09ed2ee30a/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/2a5ea591d02955647e5f6c9e566b5c6a99d6ebed817bdc4c410e7b627c690622/merged
shm 1G 0G 1G 0% /var/lib/docker/containers/d6ad7cbc285e3e8d15477c891aded41533f6032c0a46297123a013ef35c12bd6/mounts/shm
shm 1G 0G 1G 0% /var/lib/docker/containers/f3ac596eb8e7a8a0454c8a90f3c1b23e52c5aab23911b335cbba3f5ed7f98574/mounts/shm
shm 1G 0G 1G 0% /var/lib/docker/containers/ccc00bbe149d20d0af4b8ccc581eebed79488742b06c21a93d1e4854d1ff0c83/mounts/shm
shm 1G 1G 1G 1% /var/lib/docker/containers/78f5e497c3104bd442776a272aac2d08abc1a2cdd8e8b917b44ee49e3b7f407a/mounts/shm
shm 1G 0G 1G 0% /var/lib/docker/containers/19835c87c59e5f6bb3f96f929b70076dc3d418089afe80aec63a7692a994b546/mounts/shm
tmpfs 2G 0G 2G 0% /run/user/0
代码
package com.util;import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import util.bean.MonitorPo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;public class StringUtilsTests2 {private static Logger log = LoggerFactory.getLogger(StringUtilsTests2.class);@Testvoid parseString1() {MonitorPo monitorPo = new MonitorPo();InputStream in = null;BufferedReader read = null;Process pro = null;String cmd = "";String[] cmds = null;try {getCPUInfo(cmd, cmds, monitorPo, pro, in, read);getMemoryInfo(cmd, cmds, monitorPo, pro, in, read);getDiskInfo(cmd, cmds, monitorPo, pro, in, read);getNetworkResourceInformation(cmd, cmds, monitorPo, pro, in, read);getUsageOfTheMysqlDiskSpaceInTheFileSystem(cmd, cmds, monitorPo, pro, in, read);getUsageOfTheDiskSpaceInTheFileSystem(cmd, cmds, monitorPo, pro, in, read);getIopsResourceInformation(cmd, cmds, monitorPo, pro, in, read);getStoresQueueInputOrOutputOperandsPerSecond(cmd, cmds, monitorPo, pro, in, read);} catch (IOException|InterruptedException e) {log.error("-realTimeMonitoring-Exception:{}", e);} finally {try {if (pro != null)pro.destroy();if (read != null)read.close();if (in != null)in.close();} catch (IOException e) {log.error("-realTimeMonitoring-finally-IOException:{}", e);}}}//查询CPUprivate static void getCPUInfo(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmd = "top -bn1 | grep \"Cpu(s)\" | awk '{split($0,arr,\" \");print 100-arr[8]}'";String result = getSingleResult(cmd, cmds, pro, in, read);if (!StringUtils.isEmpty(result)) {monitorPo.setCpu(Double.valueOf(Double.parseDouble(result)));} else {monitorPo.setCpu(Double.valueOf(0.0D));}}//查询内存private static void getMemoryInfo(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmd = "top -bn1 | grep \"KiB Mem\" | awk '{split($0,arr,\" \");print arr[4]/1024/1024,arr[8]/1024/1024}'";String result = getSingleResult(cmd, cmds, pro, in, read);String[] arr = result.split(" ");double memoryTotal = Double.parseDouble(arr[0]);double memoryUsed = Double.parseDouble(arr[1]);DecimalFormat df = new DecimalFormat("#.##");double memoryUseRatio = Double.parseDouble(df.format(memoryUsed / memoryTotal * 100.0D));monitorPo.setMemoryTotal(Double.valueOf(memoryTotal));monitorPo.setMemory(Double.valueOf(memoryUsed));monitorPo.setMemoryUseRatio(Double.valueOf(memoryUseRatio));}//查询磁盘private static void getDiskInfo(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmd = "df -h / | tail -n +2 | grep -v \"Filesystem\" | awk '{split($0,arr,\" \");print arr[2],arr[3],arr[5]}'";String result = getSingleResult(cmd, cmds, pro, in, read);String[] arr = result.split(" ");monitorPo.setDiskTotal(Double.valueOf(Double.parseDouble(arr[0].replaceAll("G", ""))));monitorPo.setDiskUse(Double.valueOf(Double.parseDouble(arr[1].replaceAll("G", ""))));monitorPo.setDiskUseRatio(Double.valueOf(Double.parseDouble(arr[2].replaceAll("%", ""))));}//查询网络IO速率public static void getNetworkResourceInformation(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getNetworkResourceInformation");cmd = "ifstat";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);if (line.startsWith("eno") || line.startsWith("eth")) {String[] split = line.split("\\s+");String networkRxRate = split[1];String networkTxRate = split[3];monitorPo.setNetworkRxRate(Double.valueOf(Double.parseDouble(networkRxRate)));monitorPo.setNetworkTxRate(Double.valueOf(Double.parseDouble(networkTxRate)));break;}}}}//查询文件服务器中数据库空间占用大小public static void getUsageOfTheMysqlDiskSpaceInTheFileSystem(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getUsageOfTheMysqlDiskSpaceInTheFileSystem");cmd = "df -h /home/ems/3rdparty/mysql/data";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);if (line.startsWith("/dev")) {String[] split = line.split("\\s+");monitorPo.setDatabaseDiskSpaceIsUsed(split[2]);}}}}//查询每秒存储队列信息public static void getStoresQueueInputOrOutputOperandsPerSecond(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getStoresQueueInputOrOutputOperandsPerSecond");cmd = "vmstat -d|grep sda|awk '{print $11}'";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);monitorPo.setQueueOperands(Double.valueOf(Double.parseDouble(line)));}}}//查询IOPS信息public static void getIopsResourceInformation(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getIopsResourceInformation");cmd = "iostat -d|grep sda|awk '{print $3\" \"$4}'";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);String[] split = line.split("\\s+");String IOPSKbRead = split[0];String IOPSKbWrite = split[1];monitorPo.setIopsKbRead(Double.valueOf(Double.parseDouble(IOPSKbRead)));monitorPo.setIopsKbWrite(Double.valueOf(Double.parseDouble(IOPSKbWrite)));}}}//查询文件系统中磁盘使用情况public static void getUsageOfTheDiskSpaceInTheFileSystem(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getUsageOfTheDiskSpaceInTheFileSystem");cmd = "df -BG";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);if (line.endsWith("/")) {String[] split = line.split("\\s+");String used = split[2];if (used.contains("G"))used = used.replace("G", "");monitorPo.setDiskSpaceIsUsed(Double.valueOf(Double.parseDouble(used)));}}}}//java执行linux命令public static String getSingleResult(String cmd, String[] cmds, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);String line = "";in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));if (pro.waitFor() == 0 && (line = read.readLine()) != null) {log.info("-line:{}", line);return line;}return null;}
}相关文章:
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
文章目录 摘要1. 查询CPU使用率命令:top -bn1 | grep \"Cpu(s)\" | awk {split($0,arr,\" \");print 100-arr[8]}2. 查询内存命令(单位:G):top -bn1 | grep \"KiB Mem\" | awk {split($…...
外观模式 rust和java的实现
文章目录 外观模式介绍实现javarustrust仓库 外观模式 外观模式(Facade Pattern)隐藏系统的复杂性,它为子系统中的一组接口提供一个统一的高层接口,使得这些接口更加容易使用。外观模式通过封装子系统内部的复杂性,提…...
uniapp-hubildx配置
1.配置浏览器 (1)运行》运行到浏览器配置》配置web服务器 (2)选择浏览器安装路径 (3)浏览器安装路径: (3.1) 右键点击图标》属性 (3.2)选择目标&…...
Nginx基础篇:Nginx搭建、Nginx反向代理、文件服务器部署配置。
Nginx Linux系统安装以及反向代理的配置 简介优点nginx 环境安装常用Nginx 命令nginx 文件服务器搭建 简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点…...
什么是TDR(威胁检测与响应)
网络安全是被动和主动方法的混合体。过去,企业往往局限于被动的方法,随着合规性和安全策略越来越受到重视,主动方法也越来越受到关注。与其他行业相比,网络安全是高度动态的,网络安全团队采用任何可以帮助他们优化的新…...
30、pytest入门内容回顾
整体结构 解读与实操 pytest30讲主要从四个方面由浅入深的进行解读, 开始 讲解了pytest的概述,安装前的准备工作(python,pycharm,pytest),运行方式(命令行),断言(assert…...
2023年 - 我的程序员之旅和成长故事
2023年 - 我的程序员之旅和成长故事 🔥 1.前言 大家好,我是Leo哥🫣🫣🫣,今天咱们不聊技术,聊聊我自己,聊聊我从2023年年初到现在的一些经历和故事,我也很愿意我的故事分…...
JMH性能测试
一、JMH JMH,全称Java Microbenchmark Harness(微基准测试框架),是专门用于Java代码微基准测试的一套测试工具API,是由Java虚拟机团队开发的,一般用于代码的性能调优。 BenchMark又叫做基准测试,…...
超完整的mysql安装配置方法(包含idea和navicat连接mysql,并实现建表)
mysql安装配置方法 1、下载mysql2、解压到指定的安装目录3、配置初始化文件my.ini4、配置用户变量和系统变量5、初始化mysql6、安装mysql服务并启动修改密码7、使用idea连接mysql8、使用Navicat可视化工具连接mysql,并实现新建数据库,新建表 1、下载mysq…...
通过仿真理解完整的阵列信号噪声模型
概要 噪声对无线电设备的信号接收会造成影响,是通信、雷达、导航、遥感等工程应用领域中的关键考虑因素。通常认为阵列合成能够提升信噪比,但忽略了这一论断的前提,即不同通道引入的噪声互不相关。但实际应用中,接收的噪声不仅仅包含信道引入的不相关噪声,还包含从外界环…...
问题:数组对象去重
问题:数组对象去重 var arr [{name: ‘a’,id: 1}, {name: ‘a’,id: 2}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}, {name: ‘c’,id: 6}, {name: ‘b’,id: 6}, {name: ‘d’,id: 7}]; 对数组对象name进行去重处理, 结果显示为: [{name…...
前端:让一个div悬浮在另一个div之上
使用 CSS 的 position 属性和 z-index 属性 首先,将第二个 div 元素的 position 属性设为 relative 或 absolute。这样可以让该元素成为一个定位元素,使得后代元素可以相对于它进行定位。 然后,将要悬浮的 div 元素的 position 属性设为 ab…...
千锋 Vue 详细笔记整理
视频笔记是根据B站 千锋 涛哥 - SpringBootvue前后端分离项目《锋迷商城》实战课-完结版 进行整理的 笔记可上 gitee仓库 自取 千锋 Vue 笔记整理 一、vue 的简介1.1 使用 JQuery 的复杂性问题1.2 VUE 简介1.2.1 前端框架1.2.2 MVVM 二、 vue 入门使用2.1 vue 的引入2.2 入门案…...
uniapp实战 —— 骨架屏
1. 自动生成骨架屏代码 在微信开发者工具中,预览界面点击生成骨架屏 确定后,会自动打开骨架屏代码文件 pages\index\index.skeleton.wxml 2. 将骨架屏代码转换为vue文件 在项目中新建文件 src\pages\index\components\skeleton.vue 将pages\index\index…...
【数据仓库-10】-- 数据仓库、数据湖和湖仓一体对比
目录 1 数据仓库与数据库的对比 2 数据湖与数据仓库的对比 3 数据仓库、数据湖和湖仓一体...
单臂路由与三层交换机
单臂路由 划分VLAN后同一VLAN的计算机属于同一个广播域,同一VLAN的计算机之间的通信是不成问题的。然而,处于不同VLAN的计算机即使是在同一交换机上,它们之间的通信也必须使用路由器。 图(a)是一种实现VLAN间路由的方…...
免费的数据采集软件,最新免费的几款数据采集软件【2024】
在当今数字化时代,数据是企业决策和业务发展的关键。而如何高效获取数据成为许多企业和研究机构的关注焦点。本文将深入探讨数据采集软件的种类。帮助大家选择最适合自己需求的数据采集工具。 数据采集软件种类 在众多数据采集软件中,有一类强大而多样…...
nodejs微信小程序+python+PHP北京地铁票务APP-计算机毕业设计推荐 -安卓
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
zabbix 进阶
zabbix的字段发现机制: zabbix客户端主动和服务端联系,将自己的地址和端口发送服务端实现字段添加监控主机。 客户端是主动一方。 缺点:自定义网段中主机数量太多,登记耗时会很久,而且这个自动发现机制不是很稳定。…...
【性能测试】Jmeter 配置元件(一):计数器
Jmeter 配置元件(一):计数器 在 Jmeter 中,通过函数 ${__counter(,)} 可以实现每次加 1 1 1 的计数效果。但如果步长不为 1 1 1,则要利用到我们的计数器。 函数作用${__counter(,)}计数器,每次加 1${__d…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
