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

news2024/11/23 21:24:41

在这里插入图片描述

文章目录

  • 摘要
    • 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);
    
    @Test
    void 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);
            }
        }
    }

    //查询CPU
    private 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;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1289267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘高效编程“武功秘笈”,手把手带你写一波!

随着今年人工智能技术的大火&#xff0c;越来越多的领域正在接受和利用这项强大的 AI 科技&#xff0c;以实现更高效、更智能的工作方式。在软件开发领域&#xff0c;AI 技术更是为我们的工作带来了前所未有的变革。从自动代码生成到智能编程助手&#xff0c;AI 正在逐步改变开…

解决IDEA中多个项目不在同一窗口下显示的问题和添加新的git的URL

以上是添加显示多个项目 以下是给新添加的项目添加git

React中使用react-json-view展示JSON数据

文章目录 一、前言1.1、在线demo1.2、Github仓库 二、实践2.1、安装react-json-view2.2、组件封装2.3、效果2.4、参数详解2.4.1、src(必须) &#xff1a;JSON Object2.4.2、name&#xff1a;string或false2.4.3、theme&#xff1a;string2.4.4、style&#xff1a;object2.4.5、…

处理实时视频流:第三方美颜SDK的实时图像处理策略

为了提高用户体验&#xff0c;许多应用和平台开始采用第三方美颜SDK&#xff0c;通过先进的图像处理技术实时改善视频中的面部外观。本文将深入探讨这些第三方美颜SDK在实时视频流处理中所采用的图像处理策略&#xff0c;揭示其背后的技术原理和创新。 一、引言 实时视频流处理…

使用MONAI时,如何选择合适的Dataset加载数据,提升训练速度!

在深度学习中&#xff0c;MONAI&#xff08;Medical Open Network for AI&#xff09;是一个专注于医学图像分析的开源框架。它提供了一系列用于医学图像处理和深度学习的工具和函数&#xff0c;其中包括了Dataset函数。 Dataset函数是MONAI框架中的一个重要组件&#xff0c;它…

【Redis】redis 高性能--线程模型以及epoll网络框架

目录 一.前言 二.多线程的弊端 2.1 锁的开销问题 2.2 多线程上下文切换带来的额外开销 2.3 多线程占用内存成本增高 三.基本IO模型与epoll 模式 3.1 基本IO模型 3.2 单线程处理机制 四.总结 一.前言 我们经常讨论到&#xff0c;redis 是单线程&#xff0c;那为什么单线…

【开发板测评】一起玩转ACM32G103开发板,释放MCU无限潜能!

为帮助小伙伴们更好的快速熟悉了解ACM32G103系列的特性&#xff0c;航芯特别发起了该系列开发板评测试用&#xff0c;以帮助大家更好地运用MCU进行项目设计。 ACM32G103开发板介绍 ACM32G103系列是航芯推出的一款有着丰富模拟外设及安全存储扩展能力的高性价比通用MCU。 高性…

git bash查看远程仓库地址

进入代码路径 git remote -vgit remote -v

springBoot如何快速发布webService接口?(含测试工具)

文章目录 引入maven依赖 org.apache.cxf cxf-rt-frontend-jaxws 3.4.5 org.apache.cxf cxf-rt-transports-http 3.4.5 org.apache.cxf cxf-spring-boot-starter-jaxws 3.4.5 新建webService接口 注意接口要添加注释WebService&#xff0c;且要添加name和targetNamespace属性…

「遮天」叶凡斩杀同等级,寻回丢失秘宝,暴打神桥境同等级强者

Hello,小伙伴们&#xff0c;我是拾荒君。 《遮天》国漫第34集已经更新了&#xff01;我的小伙伴们&#xff0c;包括拾荒君在内&#xff0c;都是迫不及待的去观看这一集。在这一集中&#xff0c;叶凡一直寻找的丢失的法器&#xff0c;被吴清风查出是被韩易水偷走的。这位韩长老…

Android audio环形缓冲队列

1、背景 在学习audio的过程中&#xff0c;看到了大神zyuanyun的博客&#xff0c;在博客的结尾&#xff0c;大神留下了这些问题&#xff1a; 但是大神没有出后续的博文来说明audio环形缓冲队列的具体实现&#xff0c;这勾起了我强烈的好奇心。经过一段时间的走读代码&#xff…

【日常总结】树莓派导致的公司无法上网 - 广播风暴

一、场景 二、问题 三、分析原因 四、解决方案 方案一&#xff1a;更换树莓派后ping路由器恢复正常 方案二&#xff1a;配置交换机 交换机广播风暴配置 也可以通过PPS来限速 查看配置 一、场景 宽带&#xff1a;公司3条500M光纤-联通 路由器&#xff1a;锐捷 在线用户…

Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection 论文阅读

Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection 摘要1.介绍2.相关工作异常检测Memory networks 3. Memory-augmented Autoencoder3.1概述3.2. Encoder and Decoder3.3. Memory Module with Attention-based S…

el-table全部选择和全部取消

el-table实现全部选择和全部取消 其实非常简单&#xff0c;el-table自带的都有方法toggleAllSelection()和clearSelection() 具体代码如下&#xff1a; <el-button typesuccess clickcheckAll sizesmall>全选</el-button> <el-button typesuccess clickcancel…

【往届见刊检索速度hin OK】 第五届计算机工程与应用国际学术会议 (ICCEA 2024)

第五届计算机工程与应用国际学术会议 (ICCEA 2024) 2024 5th International Conference on Computer Engineering and Application 2024年4月12-14日 中国-杭州 计算机工程与应用在人工智能、大数据、云计算、物联网、网络安全等领域发挥着重要作用&#xff0c;随着科技日…

docker 安装mysql 主从复制

一、搭建主服务器的mysql 1.1 先新建文件夹 mkdir -p /data/dockerData/mysql-master/conf 1.2 进入/data/dockerData/mysql-master/conf目录下新建my.config, [mysqld] ## 设置server_id&#xff0c;同一局域网中需要唯一 server_id101 ## 指定不需要同步的数据库名称 bin…

Redis7--基础篇7(哨兵sentinel)

1. 关于哨兵的介绍 1、监控redis运行状态&#xff0c;包括master和slave&#xff08;主从监控&#xff09; 2、哨兵可以将故障转移的结果发送给客户端&#xff08;消息通知&#xff09; 3、当master down机&#xff0c;能自动将slave切换成新master&#xff08;故障转移&#…

学生档案管理系统设计

摘要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量…

20、pytest中的参数化

官方实例 # content of test_expectation.pyimport pytestpytest.mark.parametrize("test_input, expected",[("35",8),("24",6),("6*9",42)]) def test_eval(test_input, expected):assert eval(test_input) expected# content of …

Vmware虚拟机简介和安装

作者&#xff1a;余小小 常见的虚拟机 vmwarevirtualBox Vmware 运行在win系统上centos运行在Vm上 先安装vm&#xff0c;在安装centos系统 Vmware介绍 不用分区或者重开机&#xff0c;就可以在同一台pc上使用多种操作系统完全隔离&#xff0c;且保护不同的操作系统环境和文…