服务器压力测试

news2025/1/4 18:55:25

目录

  • 一、磁盘性能测试
    • 安装fio磁盘性能测试工具
    • 测试内容为顺序读、随机读、顺序写、随机写、随机读写
    • 结果分析
  • 二、CPU性能测试
    • 安装sysbench性能测试工具
    • 结果分析
  • 三、内存性能测试
    • 结果分析
  • 四、网络性能测试
    • 测试iperf3工具
    • 测试结果分析
    • 1.测试TCP吞吐量
    • 2 . 测试UDP丢包和延迟

此次测试服务器为虚拟机(192.168.16.70),物理机(192.168.16.25)
测试内容包括:磁盘性能测试、CPU性能测试、内存性能测试、网络性能测试

一、磁盘性能测试

安装fio磁盘性能测试工具

yum -y install epel-release
yum install -y fio
yum install libaio-devel

测试内容为顺序读、随机读、顺序写、随机写、随机读写

fio  -filename=/data/fiotest  -direct=1 -iodepth 1 -thread -rw=read -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -name=readtest

fio  -filename=/data/fiotest  -direct=1 -iodepth 1 -thread -rw=randread -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -name=randreadtest

fio -filename=/data/fiotest -direct=1 -iodepth 1 -thread -rw=write -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -name=writetest

fio -filename=/data/fiotest -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -name=randwritetest

fio -filename=/data/fiotest -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=libaio -bs=16k -size=50G -numjobs=30 -runtime=100 -group_reporting -name=randrwtest 

参数定义

filename=/tmp/fiotest  支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb 

direct=1 测试过程绕过机器自带的buffer,使测试结果更真实 

-thread:使用pthread_create创建线程,另一种是fork创建进程。进程的开销比线程要大,一般都采用thread测试。

rw=randwread 测试随机读的I/O 

rw=randwrite 测试随机写的I/O 

rw=randrw 测试随机混合写和读的I/O 

rw=read 测试顺序读的I/O 

rw=write 测试顺序写的I/O 

rw=rw 测试顺序混合写和读的I/O 

bs=4k 单次io的块文件大小为4k 

bsrange=512-2048 同上,提定数据块的大小范围 

size=50g 本次的测试文件大小为50g,以每次16k的io进行测试 

numjobs=30 本次的测试线程为30 

runtime=100 测试时间为100秒,如果不写则一直将50g文件分16k每次写完为止 

ioengine=libaio io引擎使用libaio方式

#
rwmixwrite=30 在混合读写的模式下,写占30% 

group_reporting 关于显示结果的,汇总每个进程的信息 

lockmem=1g 只使用1g内存进行测试 
zero_buffers 用0初始化系统
buffer nrfiles=8 每个进程生成文件的数量

结果分析

randreadtest: (g=0): rw=randread, bs=(R) 16.0KiB-16.0KiB, (W) 16.0KiB-16.0KiB, (T) 16.0KiB-16.0KiB, ioengine=libaio, iodepth=1
...
fio-3.7
Starting 30 threads

randreadtest: (groupid=0, jobs=30): err= 0: pid=70058: Mon Feb 13 14:03:04 2023
   read: IOPS=394, BW=6304KiB/s (6455kB/s)(1848MiB/300101msec)
    slat (usec): min=5, max=2693, avg=34.48, stdev=14.56
    clat (usec): min=131, max=1014.7k, avg=76084.14, stdev=80707.24
     lat (usec): min=165, max=1014.7k, avg=76119.37, stdev=80707.24
    clat percentiles (msec):
     |  1.00th=[    4],  5.00th=[    6], 10.00th=[    9], 20.00th=[   16],
     | 30.00th=[   25], 40.00th=[   35], 50.00th=[   48], 60.00th=[   66],
     | 70.00th=[   90], 80.00th=[  124], 90.00th=[  182], 95.00th=[  241],
     | 99.00th=[  372], 99.50th=[  426], 99.90th=[  567], 99.95th=[  634],
     | 99.99th=[  802]
   bw (  KiB/s): min=   31, max=  640, per=3.34%, avg=210.53, stdev=86.17, samples=17962
   iops        : min=    1, max=   40, avg=13.10, stdev= 5.39, samples=17962
  lat (usec)   : 250=0.01%, 500=0.02%, 750=0.01%
  lat (msec)   : 2=0.05%, 4=1.56%, 10=9.94%, 20=13.73%, 50=25.94%
  lat (msec)   : 100=22.34%, 250=21.98%, 500=4.22%, 750=0.19%, 1000=0.01%
  cpu          : usr=0.02%, sys=0.07%, ctx=118608, majf=0, minf=3452
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=118242,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: bw=6304KiB/s (6455kB/s), 6304KiB/s-6304KiB/s (6455kB/s-6455kB/s), io=1848MiB (1937MB), run=300101-300101msec

Disk stats (read/write):
  sda: ios=118184/928, merge=0/2224, ticks=8989961/890698, in_queue=9821141, util=100.00%

指标主要看每秒 I/O 数(iops) 和 硬盘传输数据流的速度(BW)
在这里插入图片描述

二、CPU性能测试

安装sysbench性能测试工具

yum -y install epel-release
yum -y install sysbench

结果分析

pro70

sysbench cpu --cpu-max-prime=20000 --threads=8 --time=30 run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 8
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  2787.23

General statistics:
    total time:                          30.0028s
    total number of events:              83630

Latency (ms):
         min:                                    2.70
         avg:                                    2.87
         max:                                   19.43
         95th percentile:                        3.36
         sum:                               239795.21

Threads fairness:
    events (avg/stddev):           10453.7500/47.54
    execution time (avg/stddev):   29.9744/0.01

Prime numbers limit: 20000,每个线程产生的素数上限均为2000
events per second: 2787.23,所有线程每秒完成了2787.23次event
total time: 30.0028s,共耗时30秒
total number of events: 83630,30秒内所有线程一共完成了83630次event
min: 2.70,完成1次event的最少耗时2.70秒
avg: 2.87,所有event的平均耗时2.87毫秒
max: 19.43,完成1次event的最多耗时19.43毫秒
95th percentile: 3.36, 95%次event在3.36秒毫秒内完成
sum: 239795.21,每个线程耗时30秒,8个线程叠加耗时就是240秒
events (avg/stddev): 10453.7500/47.54 // 平均每个线程完成10453次event,标准差为47
execution time (avg/stddev): 29.9744/0.01 // 每个线程平均耗时30秒,标准差为0

pro25

sysbench cpu --cpu-max-prime=20000 --threads=8 --time=30 run

sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 8
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  3799.96

General statistics:
    total time:                          30.0027s
    total number of events:              114027

Latency (ms):
         min:                                    2.03
         avg:                                    2.10
         max:                                    7.76
         95th percentile:                        2.39
         sum:                               239966.24

Threads fairness:
    events (avg/stddev):           14253.3750/22.81
    execution time (avg/stddev):   29.9958/0.00

Prime numbers limit: 20000,每个线程产生的素数上限均为2000
events per second: 3799.96 ,所有线程每秒完成了3799.96次event
total time: 30.0027s,共耗时30秒
total number of events: 114027,30秒内所有线程一共完成了114027次event
min: 2.03,完成1次event的最少耗时2.03秒
avg: 2.10,所有event的平均耗时2.10毫秒
max: 7.76,完成1次event的最多耗时7.76毫秒
95th percentile: 2.39, 95%次event在2.39秒毫秒内完成
sum: 239966.24,每个线程耗时30秒,8个线程叠加耗时就是240秒
events (avg/stddev): 14253.3750/22.81 // 平均每个线程完成14253.3750/22.81次event,标准差为23
execution time (avg/stddev): 29.9958/0.00 // 每个线程平均耗时30秒,标准差为0

三、内存性能测试

结果分析

pro70

sysbench memory --threads=12 --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 12
Initializing random number generator from current time


Running memory speed test with the following options:
  block size: 8KiB
  total size: 102400MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 10112320 (1011060.89 per second)

79002.50 MiB transferred (7898.91 MiB/sec)


General statistics:
    total time:                          10.0001s
    total number of events:              10112320

Latency (ms):
         min:                                    0.00
         avg:                                    0.01
         max:                                   28.03
         95th percentile:                        0.01
         sum:                               116284.49

Threads fairness:
    events (avg/stddev):           842693.3333/45270.47
    execution time (avg/stddev):   9.6904/0.04




total number of events:  13107200    读/写一个内存块的events数
min:  0.00  最小耗时 这里等于0是因为内存块太小,返回的结果数值精度不够
sum: 62961.90    所有线程总耗时62962ms
events (avg/stddev):  1638400.0000/0.00   平均每线程完成events数1638400/标准差0
execution time (avg/stddev):   7.8702/1.15      平均每线程执行时间8s 标准差1s

pro25

sysbench memory --threads=12 --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 12
Initializing random number generator from current time


Running memory speed test with the following options:
  block size: 8KiB
  total size: 102400MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 7038742 (703511.93 per second)

54990.17 MiB transferred (5496.19 MiB/sec)


General statistics:
    total time:                          10.0002s
    total number of events:              7038742

Latency (ms):
         min:                                    0.00
         avg:                                    0.02
         max:                                    0.49
         95th percentile:                        0.02
         sum:                               118420.01

Threads fairness:
    events (avg/stddev):           586561.8333/6249.45
    execution time (avg/stddev):   9.8683/0.00

total number of events:  7038742   读/写一个内存块的events数
min:  0.00  最小耗时 这里等于0是因为内存块太小,返回的结果数值精度不够
sum: 118420.01    所有线程总耗时118420ms
events (avg/stddev):  586561.8333/6249.45   平均每线程完成events数586562/标准差6249
execution time (avg/stddev):   9.8683/0.00      平均每线程执行时间10s 标准差0s

四、网络性能测试

测试iperf3工具

yum install -y sysstat wget tar automake make gcc
wget https://downloads.es.net/pub/iperf/iperf-3.9.tar.gz
tar -zxvf iperf-3.9.tar.gz 
cd iperf-3.9
./configure && make && make install

测试结果分析

要使用iperf,首先要启用一个服务端,这里指定服务端的IP地址为pro70,在此服务器上运行“iperf3 -s -i 2”即可开启iperf的服务器模式。在默认情况下,iperf3将在服务端打开一个5201监听端口,此时就可以在pro25服务器作为客户端执行iperf功能测试了。

pro70

[root@pro70 ~]# iperf3 -s -i 2 
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

1.测试TCP吞吐量

pro25

[root@pro25 ~]# iperf3 -c 192.168.16.70 -F /data/fiotest -i 5 -t 180
Connecting to host 192.168.16.70, port 5201
[  5] local 192.168.16.25 port 51856 connected to 192.168.16.70 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-5.00   sec  4.76 GBytes  8.17 Gbits/sec  670   1.18 MBytes       
[  5]   5.00-10.00  sec  4.80 GBytes  8.25 Gbits/sec  237    854 KBytes       
[  5]  10.00-15.00  sec  4.78 GBytes  8.21 Gbits/sec  1172    604 KBytes       
[  5]  15.00-20.01  sec  2.21 GBytes  3.79 Gbits/sec   28   1014 KBytes       
[  5]  20.01-25.00  sec  1.10 GBytes  1.90 Gbits/sec   42    788 KBytes       
[  5]  25.00-30.00  sec  1.06 GBytes  1.83 Gbits/sec   71    274 KBytes       
[  5]  30.00-35.00  sec  1.08 GBytes  1.85 Gbits/sec   32    389 KBytes       
[  5]  35.00-40.00  sec  1.09 GBytes  1.86 Gbits/sec   20    365 KBytes       
[  5]  40.00-45.00  sec  1.10 GBytes  1.88 Gbits/sec   98    304 KBytes       
[  5]  45.00-50.00  sec  1.08 GBytes  1.85 Gbits/sec   22    393 KBytes       
[  5]  50.00-55.00  sec  1.10 GBytes  1.88 Gbits/sec    1    406 KBytes       
[  5]  55.00-60.00  sec  1.06 GBytes  1.82 Gbits/sec   43    337 KBytes       
[  5]  60.00-65.00  sec  1.10 GBytes  1.88 Gbits/sec    0    397 KBytes       
[  5]  65.00-70.00  sec  1.09 GBytes  1.88 Gbits/sec    0    403 KBytes       
[  5]  70.00-75.00  sec  1.10 GBytes  1.89 Gbits/sec    0    419 KBytes       
[  5]  75.00-80.00  sec  1.07 GBytes  1.84 Gbits/sec    0    427 KBytes       
[  5]  80.00-85.00  sec  1.09 GBytes  1.88 Gbits/sec    0    434 KBytes       
[  5]  85.00-90.00  sec  1.09 GBytes  1.88 Gbits/sec    0    443 KBytes       
[  5]  90.00-95.00  sec  1.09 GBytes  1.87 Gbits/sec    0    448 KBytes       
[  5]  95.00-100.02 sec  1.06 GBytes  1.81 Gbits/sec    0    457 KBytes       
[  5] 100.02-105.00 sec  1.09 GBytes  1.88 Gbits/sec    0    465 KBytes       
[  5] 105.00-110.00 sec  1.06 GBytes  1.82 Gbits/sec    0    475 KBytes       
[  5] 110.00-115.00 sec  1.09 GBytes  1.87 Gbits/sec    0    496 KBytes       
[  5] 115.00-120.01 sec  1.09 GBytes  1.88 Gbits/sec    0    663 KBytes       
[  5] 120.01-125.00 sec  1.09 GBytes  1.88 Gbits/sec    0    663 KBytes       
[  5] 125.00-130.00 sec  1.09 GBytes  1.87 Gbits/sec    0   1003 KBytes       
[  5] 130.00-135.00 sec  1.06 GBytes  1.82 Gbits/sec    0   1003 KBytes       
[  5] 135.00-140.00 sec  1.08 GBytes  1.86 Gbits/sec    0   1003 KBytes       
[  5] 140.00-145.00 sec  1.10 GBytes  1.89 Gbits/sec    0   1003 KBytes       
[  5] 145.00-150.00 sec  1.09 GBytes  1.87 Gbits/sec    0   1.42 MBytes       
[  5] 150.00-155.00 sec  1.09 GBytes  1.87 Gbits/sec    0   1.42 MBytes       
[  5] 155.00-160.00 sec  1.09 GBytes  1.88 Gbits/sec    0   1.42 MBytes       
[  5] 160.00-165.00 sec  1.09 GBytes  1.87 Gbits/sec    0   1.42 MBytes       
[  5] 165.00-170.00 sec  1.04 GBytes  1.78 Gbits/sec   33   1.01 MBytes       
[  5] 170.00-174.36 sec   982 MBytes  1.89 Gbits/sec    0   1.01 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-174.36 sec  50.0 GBytes  2.46 Gbits/sec  2469             sender
        Sent 50.0 GByte / 50.0 GByte (100%) of /data/fiotest
[  5]   0.00-174.36 sec  50.0 GBytes  2.46 Gbits/sec                  receiver

iperf Done.

在这此测试中 我们通过“-F”参数指定了一个50G的fiotest文件作为iperf要传输的数据,需要同时指定一个“-t”参数来设置要测试传输的时间,这个时间尽量设置长一些,因为在默认传输时间10秒内,这个文件可能还没有传完。

通过结果我们可以看到传输速率平均在2.46 Gbits/sec

2 . 测试UDP丢包和延迟

iperf也可以用于UDP数据包吞吐量、丢包率和延迟指标,但是由于UDP协议是一个非面向连接的轻量级传输协议,并且不提供可靠的数据传输服务,因此对UDP应用的关注点不是传输数据有多快,而是它的丢包率和延时指标。通过iperf的“-u”参数即可测试UDP应用的传输性能

pro70

[root@pro25 ~]# iperf3 -c 192.168.16.70 -u -b 1G -f M -i 3
Connecting to host 192.168.16.70, port 5201
[  5] local 192.168.16.25 port 47184 connected to 192.168.16.70 port 5201
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-3.00   sec   358 MBytes   119 MBytes/sec  258918  
[  5]   3.00-6.00   sec   358 MBytes   119 MBytes/sec  258955  
[  5]   6.00-9.00   sec   356 MBytes   119 MBytes/sec  257490  
[  5]   9.00-10.00  sec   121 MBytes   121 MBytes/sec  87860  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  1.16 GBytes   119 MBytes/sec  0.000 ms  0/863223 (0%)  sender
[  5]   0.00-10.00  sec  1.16 GBytes   118 MBytes/sec  0.008 ms  5513/863223 (0.64%)  receiver

iperf Done.

此次测试使用iperf3传输1DB的UDP数据包的输出结果

重点关注虚线下的一段内容,在这段输出中,“Jitter”列表示抖动时间,或者称为传输延迟,“Lost/Total”列表示丢失的数据报和总的数据报数量,后面的0%是平均丢包的比率。

这个输出结果过于简单,要了解更详细的UDP丢包和延时信息,可以在iperf服务端查看,因为在客户端执行传输测试的同时,服务端也会同时显示传输状态

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

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

相关文章

EasyExcel读文件详解和源码分析

读取文件导入的话,我们经常看到下面这些方法。 //同步的返回,不推荐使用 EasyExcel.read(file).sheet(sheetNo).head(Class.class).headRowNumber(headRowNum)..doReadSync(); //异步的,通过监听器处理读到的数据。 EasyExcel.read(file).sh…

VMware Tools安装“保熟“技巧

网上关于如何安装VMware Tools也有很多帖子,但是基本很难对症下药。下面笔者给出两种情况,读者可根据自己概况定位自己的问题,从而进行解决。 如果读者安装操作系统时是如笔者如下截图 那么读者可参考这个解决方案 安装VMware Tools选项显示灰色的正确解…

【算法与数据结构】151、LeetCode反转字符串中的单词

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题的主要思路是先处理多余的空格,这个处理方法可以参考博主的这篇文章【算法与数据结构】…

PNP三极管开关电路注意事项

这个是一个NPN三极管的开关电路。 有时候我们也会用PNP的三极管搭建三极管开关电路。 当MCU输出低电平时,三极管BE间的电压小于开启电压,这时三极管饱和导通。 当MCU输出高电平,很多同学认为三极管BE间的电压大于开启,这时三极管截…

在IDEA中使用groovy脚本生成POJO

步骤1:打开Database窗格,新建数据库连接 数据库连接默认只是当前工程使用,想要所有IDEA窗口共享 步骤2:编辑groovy脚本 步骤3:选择一张或多张表,生成代码 生成效果 附:groovy脚本 import com.i…

POI合并单元格设置单元格样式

文章目录 设置居中设置背景颜色设置边框设置字体合并单元格实际使用运行效果 设置居中 CellStyle centerStyle wb.createCellStyle();centerStyle.setAlignment(HorizontalAlignment.CENTER); // 居中centerStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中设…

桐庐旅行|桐庐团建全攻略「两天一夜行程」

桐庐被《国家地理》评选为全球25个最佳旅行目的地之一 获评「中国最美县城」,热门综艺《向往的生活》拍摄地 浙江的山水精华尽在「桐庐」 今夏绝对不能错过的避暑胜地 交通信息 车程:杭州1.5h 、上海3h、宁波2.5H、南京3.5H 尖峰推荐目的地 深澳古村 始…

原来,这就是铁路隧道R型变压器的工作真相!

铁路作为我们日常交通的重要出行设备,其安全稳定性极为重要。高速铁路具有行车速度快、行车密度高、负荷分布密集、自动化程度高、要求安全、正点运行的特点。铁路隧道对电力系统的供电可靠性也有非常严格的要求。铁路隧道R型变压器在铁路隧道供电系统中的主要功能是…

【线程池】史上最全的ThreadPoolExecutor源码详解

目录 一、线程池框架 1.1 第一层结构 1.2 接口简介 1.3 核心实现类 1.4 辅助类 1.5 完成服务 二、ThreadPoolExecutor的成员属性和内部类 2.1 主要成员属性以及工具方法 2.2 五种内部类 2.2.1 拒绝策略内部类(Policy) 2.2.2 工作线程内部类&a…

八数码、解华容道(bfs,全局择先,A*搜索)

【问题描述】 题目6:数阵问题 每个局面是三行三列的数字方阵,每个位置为0-8的一个数码且互不相同,求从初始局面(自己设定)如何“最快”移动到终止局面(自己设定)。 移动规则:每次只…

【实战】 四、JWT、用户认证与异步请求(上) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(四)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求1.login2.middleware of json-server3.jira-dev-tool(imooc-jira-tool)安装问…

Onlyoffice安装步骤

使用docker安装Onlyoffice社区版 第X章 占位… 文章目录 使用docker安装Onlyoffice社区版说明一、系统需求二、安装步骤1.下载2.安装3.测试4. 升级为HTTPS协议4.1生成私钥4.2 生成CSR,即:证书签名请求文件4.3 使用私钥和CSR签署证书 未完,待续总结 说明…

【程序员面试金典】面试题 17.21. 直方图的水量

【程序员面试金典】面试题 17.21. 直方图的水量 题目描述解题思路 题目描述 描述:给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直…

从数据取地址运算符 从地址取数据运算符* 数组函数传送三种方法

概念 a表示数据本身。 &a表示a对应的地址。 *a表示存a数据的地址。 #include<stdio.h> int main() { int a 10; int *b &a; int* d &a; int c *b; …

Spring Boot 中的 WebSocketSession 是什么,原理,如何使用

Spring Boot 中的 WebSocketSession 是什么&#xff0c;原理&#xff0c;如何使用 介绍 在现代 Web 应用程序中&#xff0c;实时通信是一个非常常见的需求。传统的 HTTP 协议是无法支持实时通信的&#xff0c;因为它是一种无状态协议&#xff0c;每次请求都是独立的&#xff0…

实现数据库版本的留言墙(表白墙)练习

目录 目标 1.创建工程 2.构建目录工程结构 3.设置编码格式 4.查看Maven的配置 6.导入HTML和JS&#xff0c;配置tomcat 7.测试网站是否可以正常访问 8.编写业务代码 目标&#xff1a; 1.熟练掌握前端向后端提交数据2.后端接收数据并校验3.通过JAVA代码进行数据库操作4.返回…

8、Redis哨兵(sentinel)

是什么? 吹哨人巡查监控后台master主机是否故障&#xff0c;如果故障了根据投票数 \textcolor{red}{投票数}投票数自动将某一个从库转换为新主库&#xff0c;继续对外服务 作用&#xff1a;俗称无人值守运维 能干嘛? 主从监控&#xff1a;监控主从redis库运行是否正常 消息…

云原生|kubernetes|离线化部署kubesphere(从网络插件开始记录)

前言&#xff1a; kubesphere的离线化部署指的是通过自己搭建的harbor私有仓库拉取镜像&#xff0c;完全不依赖于外部网络的方式部署。 我的kubernetes集群是一个单master节点&#xff0c;双工作节点&#xff0c;总计三个节点的版本为1.22.16的集群。 该集群只是初始化完成了…

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(一)

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python面试专栏&#xff1a;《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; …

如何在VirtualBox安装CentOS 7

一、简介VirtualBox VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发&#xff0c;由Sun Microsystems公司出品的软件&#xff0c;使用Qt编写&#xff0c;在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public Lice…