Linux系统:优化命令sar

news2024/11/26 23:26:47

目录

一、理论

1.命令描述

 2.命令作用

3.命令参数

4.实用实例

二、实验

1.压力测试

三、问题

1.Linux系统五大负载如何解决

2.为什么使用ab命令进行网络传输数据的压力测试

3.ab命令发送请求测试失败

四、总结

1.sar命令

2.ab命令

3.五大负载



一、理论

1.命令描述

sar(System Activity Reporter系统活动情况报告)是目前Linux比较全的系统性能分析工具之一,可以从多方面对系统的活动进行报告 ,包括:文件的读写情况、系统调用的使用情况、磁盘I/OCPU效率、内存使用状态、进程活动有IPC有关的活动等。

sar 还可以配置配置信息收集历史指标。

-n,代表的是监控一些网络信息。DEV,代表的是监控网卡信息。
时间间隔,表示多少秒采样一次数据,这里的1就是1秒次数,表示采样的次数。比如时间间隔是3,采样次数是4,那么sar命令将会阻塞12秒钟。

 2.命令作用

sarsysstat软件包的一部分,如果系统没有安装的话,可以使用命令进行安装。

yum install -y sysstat
[root@localhost /]# rpm -q sysstat
sysstat-10.1.5-12.el7.x86_64

3.命令参数

      语法:

      sar [options] [-A] [-o file] [[t] [n]]

     ② 选项

表1 sar命令选项

选项

功能

-b

 I/O传输速率信息状态

-B 

 分布状况

-c

进程创建活动

-d

块设备状况

-e 

设置显示报告的结果时间

-m

电源管理信息状况

-f

从指定文件提取报告

-I {<中断> | SUM | ALL | XALL —>}

 中断信息状况

-m

电源管理信息状况

-n{ <关键词> [,…] | ALL }

网络统计信息,关键词可以是:

DEV ->网卡

EDEV ->网卡(错误)

NFS ->NFS客户端

NFSD ->NFS服务器

SOCK ->Sockets(套接字)(v4)

IP ->IP(v4)

EIP ->IP流(错误)(v4)

ICMP ->ICMP(v4)

EICMP ->ICMP(错误)(v4)

UDP ->UDP(v4)

SOCK6 ->Sockets(套接字)(v6)

IP6 ->IP(v6)

EIP6 ->IP流(错误)(v6)

ICMP6 ->ICMP(v6)

EICMP6 ->ICMP(错误)(v6)

UDP6 ->UDP(v6)

-P

报告每个CPU的状态

-q

队列长度和平均负载

-r

内存利用率

-R

内存状态

-S

交换空间利用率

-u [ ALL ]

CPU利用率

-v

 Kernel table状况

-w

任务创建与系统转换统计信息

-W

交换信息

-y

TTY设备状态

-x

显示给定进程的状态

4.实用实例

监测CPU

sar -u 1 3 或 sar 1 3  (1:每隔一秒刷新一次,3:刷新3次)

② 进程长度和CPU平均负载状态监控

sar -q 1 3  1:每隔一秒刷新一次,3:刷新3次)

③ 内存监控

sar -r 1 3 1:每隔一秒刷新一次,3:刷3次)

  sar -W 1 3 SWAP交换的统计信息(监控状态同iostat si so)

④  I/O和传送速率监控与磁盘使用情况

sar -r 1 3 输出内存使用率统计信息

 sar -b 1 3 (1:每隔一秒刷新一次,3:刷新3次)

 sar -d 1 3 (1:每隔一秒刷新一次,3:刷新3次)

 sar -d 1 3 -p(1:每隔一秒刷新一次,3:刷新3次)

 网络宽带监控

sar命令使用-n选项可以汇报网络相关信息,可用的参数包括:DEV、EDEV、SOCK和FULL。

二、实验

1.压力测试

(1)测试CPU占用率

测试前数据:

sar -u 1 3

stress命令测试:

stress-ng --io --hdd 15 --timeout 600

开PC2远程PC1

 

 测试后数据:

sar -u 1 3

cpu空闲时间已经没有了。

2测试内存占用率

测试前数据:

sar  -r 1 3

stress命令测试

stress-ng --vm 2 --vm-hang 100 --timeout 100s

测试后数据:

sar -r 1 3

 (3)测试I/O与传输速率与磁盘使用情况

测试前数据:

sar -b 1 3

stress命令测试

stress-ng --io -hdd 15 --timeout 600

 测试后数据:

sar -b 1 3

 (4)检测网络流量

网路设备的状态信息

首先在本机PC1上(192.168.204.200)安装httpd服务,并启动(注意一定要关闭防火墙)

 测试前数据:

sar -n DEV 1 1

再开一台虚拟机PC2192.168.204.150

先使用yum 安装ab命令

yum install -y httpd-tools

用ab命令来测试

ab -c 1000 -n 50000 http://192.168.204.200/

接受和发送的数据都非常的大

sar -n DEV 1 1

三、问题

1.Linux系统五大负载如何解决

(1)I/O过高异常

使用命令:iostat、iotop

解决方法:

①IO使用情况定位

②top查询wa(i/o)的使用情况,查看io占用cpu是否较高。

top - 15:50:07 up  6:05,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 195 total,   2 running, 193 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.3 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1867048 total,   133076 free,   789220 used,   944752 buff/cache
KiB Swap:  4194300 total,  4183600 free,    10700 used.   844616 avail Mem 

③iostat -x 2 5查看各磁盘的使用情况,越高说明磁盘对应的io越高。

[root@localhost /]# iostat -x 2 5
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 	2023年06月15日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.23    0.31    0.01    0.00   99.27

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.16    1.04    0.40    60.38    58.92   165.64     0.00    1.57    1.33    2.21   0.70   0.10
sdb               0.00     0.00    0.02    0.00     0.23     0.10    29.66     0.00    0.16    0.14    2.00   0.14   0.00
sdd               0.00     0.00    0.02    0.00     0.27     0.00    31.19     0.00    0.12    0.12    0.00   0.11   0.00
sdc               0.00     0.00    0.02    0.00     0.24     0.00    30.46     0.00    0.20    0.20    0.00   0.15   0.00
scd0              0.00     0.00    0.00    0.00     0.05     0.00    72.41     0.00    0.79    0.79    0.00   0.72   0.00
dm-0              0.00     0.00    1.00    0.42    58.67    58.28   164.48     0.00    1.59    1.36    2.14   0.68   0.10
dm-1              0.00     0.00    0.01    0.13     0.12     0.53     9.30     0.00    5.53    0.40    5.78   0.19   0.00
dm-2              0.00     0.00    0.01    0.00     0.06     0.10    36.82     0.00    0.13    0.09    2.00   0.10   0.00
dm-3              0.00     0.00    0.00    0.00     0.05     0.00    48.19     0.00    0.09    0.09    0.00   0.09   0.00

……

④iotop直接查看IO较高的进程号

1)iotop 默认按照 I/O 使用量大小进行排序,按照 I/O 占用最高的进程排列在最上面。

2)通过按下 O 键可以对进程列表进行排序,如按照 CPU 占用排序等。

3)按下 P 键可以暂停/恢复 I/O 监测,这样可以更方便地找到正在进行 I/O 操作的进程。

4)对于需要退出 iotop 的情况,可以按下 q 键退出。

先安装软件包

yum install -y iotop
iotop

⑤ cat /proc/pid/io查看对应进程使用的io情况

[root@localhost /]# cat /proc/1403/io
rchar: 2047910
wchar: 62473
syscr: 1064
syscw: 70
read_bytes: 2068480
write_bytes: 16384
cancelled_write_bytes: 0

⑥ ls /proc/pid/fd查看对应的应用目录

[root@localhost /]# lsof -p 980
COMMAND   PID USER   FD      TYPE             DEVICE  SIZE/OFF      NODE NAME
firewalld 980 root  cwd       DIR              253,0       248        64 /
firewalld 980 root  rtd       DIR              253,0       248        64 /
firewalld 980 root  txt       REG              253,0      7136 100842928 /usr/bin/python2.7

……
[root@localhost /]#  ls /proc/980/fd
0  1  10  2  3  4  5  6  7  8  9

⑦fdisk -l 或pvdisplay 查看对应的磁盘,来确认是否与io高的磁盘一致。

[root@localhost opt]# fdisk -l 

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000d84b8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    10487807     5242880   83  Linux
/dev/sda2        10487808   123750399    56631296   8e  Linux LVM

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb2b3538f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    39847935     9437184   83  Linux

……

(2)网络流量异常

Linux下使用iftop工具结合iptables服务来解决带宽资源被恶意请求满的问题,主要通过2个步骤来实现:

① 使用iftop工具查出来是哪些个在请求主机的带宽资源,找出耗带宽的程序。

1)<= 、=> 左右箭头,表示流量的方向;

2)右边3列,表示的是该访问ip连接到本机2秒,10秒和40秒的平均流量

3)TX:发送流量

4)RX:接收流量

5)TOTAL:总流量

6)Cum:运行iftop到目前时间的总流量

7)peak:流量峰值

8)rates:分别表示过去 2s 10s 40s 的平均流量

安装软件包

yum –y install iftop 

② 找出耗带宽的或者段,分析是out方向还是in方向,使用iptables规则来进行控制。

-raw:主要用来决定是否对数据包进行状态跟踪 包含两个规则链,OUTPUT、PREROUTING

-mangle :  修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING

-nat:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。

-filter:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个链,即INPUT、FORWARD、 OUTPUT

(3)硬盘满了

①确定是不是真的是磁盘空间不足

输入命令:df –h 查看磁盘信息

磁盘下的挂载点 /dev/sda1 下的40G容量已经耗尽

既然问题已经确定了,接下来就是处理了

处理方法也很简单,就是删文件

问:删除什么文件?

答:删除占用磁盘空间大,但又无用的文件

问:什么是无用的文件?

答:如果对系统不熟悉的话,日志可能是你第一的下手目标

②如何定位最大文件目录

输入命令: cd / 进入根目录

输入命令:du -h --max-depth=1 寻找当前目录,哪个文件夹占用空间最大

③如何定位最大文件

输入命令:ls -Sl将文件以从大到小顺序展现

[root@localhost ~]# ls -Sl 
总用量 12
-rw-r--r--. 1 root root 2069 5月  10 16:11 initial-setup-ks.cfg
-rw-------. 1 root root 2041 5月  10 16:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 1213 5月  24 13:26 ks.cfg
drwxr-xr-x. 2 root root   24 5月  13 11:57 RECOVERED_FILES
drwxr-xr-x. 2 root root    6 5月  10 16:11 公共
drwxr-xr-x. 2 root root    6 5月  10 16:11 模板
drwxr-xr-x. 2 root root    6 5月  10 16:11 视频
drwxr-xr-x. 2 root root    6 5月  10 16:11 图片
drwxr-xr-x. 2 root root    6 5月  10 16:11 文档
drwxr-xr-x. 2 root root    6 5月  10 16:11 下载
drwxr-xr-x. 2 root root    6 5月  10 16:11 音乐
drwxr-xr-x. 2 root root    6 5月  10 16:11 桌面

最终定位相关日志文件

④确认文件未被占用

删除文件:rm –f 文件 但是,最好确认下是否要下载下来让开发人员分析日志

在Linux或系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

输入命令:/usr/sbin/lsof | grep deleted 确认删除文件是否被占用

[root@localhost ~]# /usr/sbin/lsof | grep deleted 
firewalld  804                root    8u      REG              253,0      4096   11908607 /tmp/ffiUR0HQR (deleted)
gmain      804  949           root    8u      REG              253,0      4096   11908607 /tmp/ffiUR0HQR (deleted)
tuned     1122                root    7u      REG              253,0      4096    8388681 /tmp/ffifijTWq (deleted)
gmain     1122 1228           root    7u      REG              253,0      4096    8388681 /tmp/ffifijTWq (deleted)
tuned     1122 1230           root    7u      REG              253,0      4096    8388681 /tmp/ffifijTWq (deleted)
tuned     1122 1231           root    7u      REG              253,0      4096    8388681 /tmp/ffifijTWq (deleted)
tuned     1122 1233           root    7u      REG              253,0      4096    8388681 /tmp/ffifijTWq (deleted)

确实被占用,根据第二列提供的pid,输入命令:kill -9 pid 杀掉进程。

再次输入命令:df –lh

⑤硬盘空间满,删除了大文件之后空间没有释放

1)使用lsof | grep deleted查看,发现被删除文件仍在占用着
2)使用kill -9 pid 终止以上进程,再用df -h检查空间情况,发现空间已经完全被释放
 

(4)cpu满了

  ① 使用top命令查询cpu的使用情况,同时用P按使用cpu排序

  ps -aux查看cpu使用

  ③ 使用lsof -p对应进程号或者-i对应端口号,查看使cpu过高的文件情况

  ④ kill 杀死没有用的进程

(5)内存满了

  ① 使用命令:free -m

 ② 配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:

0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存

[root@localhost /]# cat /proc/sys/vm/drop_caches
0

③ 释放所有缓存,就输入下面的命令:

echo 3 > /proc/sys/vm/drop_caches

④ 清理缓存:

echo 1 > /proc/sys/vm/drop_caches

2.为什么使用ab命令进行网络传输数据的压力测试

(1) 命令描述

ab命令全称为:Apache bench 。是Apache自带的压力测试工具。ab命令非常实用,它不仅可以对Apache服务器进行网站访问压力测试,也可以对其它类型的服务器进行压力测试。可以测试安装Web服务器每秒种处理的HTTP请求。

(2)命令作用

ab命令会创建多个并发线程,模拟多个访问者同时对某一个url地址进行访问,测试的目标基于url。安装httpd时,ab命令也会被同时安装,所以不需要再另行安装。

ab命令缺点会给服务器造成非常高的负载,可能会造成目标服务器资源耗尽,严重时可能会导致死机,而且它没有图形化结果不能监控,所以只能用作临时紧急任务和简单的测试。

yum install -y httpd

(3) 命令参数

语法:

ab[选项][s] http://主机名:端口/路径

常用选项:

表2 ab命令选项

选项功能
-A指定连接服务器的基本的认证凭据
-c指定一次向服务器发出请求数
-C添加cookie
-g将测试结果输出为“gnuolot”文件
-h显示帮助信息
-H为请求追加一个额外的头
-i使用“head”请求方式
-k激活HTTP中的“keepAlive”特性
-n指定测试会话使用的请求数
-p指定包含数据的文件
-q不显示进度百分比
-T使用POST数据时,设置内容类型头
-v设置详细模式等级
-w以HTML表格方式打印结果
-x以表格方式输出时,设置表格的属性
-X使用指定的代理服务器发送请求
-y以表格方式输出时,设置表格属性

(4)实用实例

使用ab命令测试web服务器:

ab https://www.baidu.com

向web服务器发送指定并发指定次数的请求测试:

 ab -n 1000 -c 100 https://www.baidu.com

3.ab命令发送请求测试失败

(1)原因分析:

① 对方的域名确实不通;

② 本机自己开了防火墙;

③ 对方开了防火墙;

④ 本机的etc/hosts 里面没有配置本机的机器名和ip 

(2)解决方法:PC1关闭防火墙

 (3)如遇到1个月都正常,然后突然几天不正常

etc/hosts 在不配置的时候是间断性的。修改方案如下:

在结尾加上:机器名和机器ip(用空格隔开)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 localhost 192.168.204.200
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

四、总结

1.sar命令

sar命令功能强大,在很多方面方面都可以使用sar来查询到我们需要的数据。

CPU瓶颈: sar -u 和sar -q等
内存瓶颈:sar -B、sar -r、sar -W等
I/O瓶颈:sar -b、sar -u、sar -d 等

网络瓶颈:sar -n DEV 

2.ab命令

ab命令不仅可以对Apache服务器进行网站访问压力测试,也可以对其它类型的服务器进行压力测试。

3.五大负载

CPU负载、内存负载、磁盘负载、I/O负载、网络流量负载

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

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

相关文章

MySQL的索引(我把梦想卖了 换成了柴米油盐)

文章目录 一、索引的概念二、索引的作用如何实现&#xff1f; 三、索引的副作用四、创建索引的原则依据创建索引的依据 五、索引的分类六、索引的增删改查1.创建索引&#xff08;1&#xff09;创建普通索引&#xff08;2&#xff09;创建唯一索引&#xff08;3&#xff09;创建…

Spring Boot进阶(51):Spring Boot项目如何集成 HTML?| 超级详细,建议收藏

1. 前言&#x1f525; 我们都知道&#xff0c;Spring Boot作为一款广泛应用于企业级的开发框架&#xff0c;其通过简化开发过程、提高开发效率赢得了众多开发者的青睐。在实际项目开发中&#xff0c;集成 HTML作为 Web 应用程序中的一个基本需求&#xff0c;也是现在极其常见的…

618最值得入手的数码产品有哪些?四款必入数码产品数码推荐

时间飞逝&#xff0c;不知不觉已经过了6月中旬&#xff0c;大家心心念念的618年中大促也即将迎来最后一波高潮。这次618大促各大品牌的优惠力度都非常可观&#xff0c;特别是数码产品类&#xff0c;可以说是今年最值得入手的时期。今天也为大家推荐几款高颜值数码好物&#xff…

在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件

搭载 Apple 芯片的 Mac 电脑 DFU 模式全新安装 macOS Ventura 请访问原文链接&#xff1a;https://sysin.org/blog/apple-silicon-mac-dfu/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Mac computers with Apple silicon&a…

聚焦2023数博会|高端对话,大咖观点精彩荟萃(上)

当前数据作为新型生产要素&#xff0c;是数字化、网络化、智能化的基础&#xff0c;已快速融入生产、分配、流通、消费和社会服务管理等各环节&#xff0c;深刻改变着生产方式、生活方式和社会治理方式。数据基础制度建设事关国家发展和安全大局。为加快构建数据基础制度&#…

【C++】手撕跳表

文章目录 跳表简介时间复杂度 代码实现节点类跳表类 源代码&#xff08;附详细注释&#xff09;参考 跳表 简介 跳表全称为跳跃列表&#xff0c;它允许快速查询&#xff0c;插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速查询是…

代码随想录二叉树 Java(三)

文章目录 &#xff08;简单&#xff09;501. 二叉搜索树中的众数&#xff08;*中等&#xff09;236. 二叉树的最近公共祖先&#xff08;中等&#xff09;235. 二叉搜索树的最近公共祖先&#xff08;中等&#xff09;701. 二叉搜索树中的插入操作&#xff08;*中等&#xff09;4…

软件测试中如何编写单元测试用例(白盒测试)

目录 前言&#xff1a; 一、 单元测试的概念 二、开始测试前的准备 三、开始测试 四、完成测试 前言&#xff1a; 单元测试是软件测试中一种重要的测试方法&#xff0c;它是在代码级别进行测试&#xff0c;通过对每个模块或功能进行独立测试来保障代码的正确性和可靠性。…

实验篇(7.2) 11. 站对站安全隧道 - 双方互相发起连接(FortiGate-IPsec) ❀ 远程访问

【简介】前面我们实验的是FortiClient客户端与防火墙进行VPN连接&#xff0c;现在我们要做的实验是防火墙与防火墙之间进行VPN连接。现在我们来看看两台防火墙之间要怎样创建VPN连接。 实验要求与环境 OldMei集团深圳总部部署了域服务器和ERP服务器&#xff0c;用来对集团总部进…

【探索 Kubernetes|容器基础进阶篇 系列 3】容器进程的文件系统

文章目录 系列文章目录&#x1f479; 关于作者一、回顾二、容器进程的文件系统是什么样子的&#xff1f;rootfs一致性解决应用依赖关系解决复用性 三、OverlayFS 联合文件系统先决条件overlay2 驱动程序如何工作结构图探索含义-磁盘上的镜像层和容器层镜像层容器层 四、overlay…

动态规划dp —— 26.环绕字符串中唯一的子字符串

1.状态表示 是什么&#xff1f;dp表中里的值所表示的含义就是状态表示 dp[i]表示&#xff1a;以i位置元素为结尾的所有的子串里面&#xff0c;有多少个在base中出现过 2.状态转移方程 dp[i] 等于什么 如果是单个字母的子串&#xff0c;肯定会在base中出现&#xff0c;所以…

一文详解!appium自动化测试

目录 前言&#xff1a; Appinum前置知识 Andriod SDK 元素获取—UI Automator adb命令实践 adb常用命令 小结 Package与Activity Activity页面布局元素 monkey简介 monkey事件 操作事件简介 monkey参数 事件类参数 约束类参数 调试类参数 Monkey参数应用综合案…

生成式AI - 关键技术历史和发展

✈️当谈及生成式人工智能&#xff08;AI&#xff09;&#xff0c;我们进入了一个令人惊叹的领域&#xff0c;它不仅改变了我们与技术的互动方式&#xff0c;而且极大地推动了人工智能的发展。通过模仿人类创造力和想象力的能力&#xff0c;生成式AI引领着我们走向了全新的可能…

re模块

目录 ❤ 正则表达式 常用正则 字符组 字符 量词 ❤ 正则表达式的使用 . ^ $ * ? { } 字符集&#xff3b;&#xff3d;&#xff3b;^&#xff3d; 分组 ()与 或 &#xff5c;&#xff3b;^&#xff3d; 转义符 \ 贪婪匹配 ❤ re模块 常量、属性 常用方法 re.co…

echarts图表 的X轴添加滚动条

1&#xff1a;原图 2&#xff1a;代码 dataZoom [{orient: horizontal,show: scoreShow,//控制滚动条显示隐藏realtime: true, //拖动滚动条时是否动态的更新图表数据height: 5, //滚动条高度start: 0, //滚动条开始位置&#xff08;共6等份&#xff09;end: this.endValue,//…

复杂业务系统的通用架构设计法则

一、什么是复杂系统 我们经常提到复杂系统&#xff0c;那么到底什么是复杂系统。我们看下维基的定义&#xff1a;复杂系统&#xff08;英语&#xff1a;complex system&#xff09;&#xff0c;又称复合系统&#xff0c;是指由许多可能相互作用的组成成分所组成的系统。强调了…

Pytest教程__参数化(10)

pytest参数化有两种方式&#xff1a; mark的parametrize标记&#xff1a;pytest.mark.parametrize(变量名&#xff0c;变量值)&#xff0c;其中变量值类型为列表、元组或其它可迭代对象。fixture的params参数&#xff1a;pytest.fixture(params变量值)&#xff0c;其中变量值类…

Selenium元素定位方法大全

一、背景 作为当下最流行的web UI自动化测试工具&#xff0c;selenium是很多测试同学入门接触自动化测试时学习的第一个工具。想要自动化操作页面上的内容&#xff0c;元素定位是首先必须要学习的核心知识。 因此本文主要介绍selenium的几种最常用的元素定位方法&#xff0c;…

008、体系架构之SQL 执行流程

SQL 执行流程 读取的执行写入的执行DDL的执行SQL运算SQL解析和编译SQL 层架构SQL 运算分布式 SQL 运算SQL 层架构 读取的执行 元数据的读取 执行器从information_schema当总获取表的元数据信息(table meta),元数据的信息从内存中读取就可以了&#xff0c;因为已经缓存到了info…

Python抓取商品详情方法的几种方法比较

抓取商品详情的方法有很多种&#xff0c;以下是其中几种常见的方法及其优缺点&#xff1a; 1.使用requests库发送HTTP请求&#xff0c;然后解析HTML或JSON格式的数据&#xff1a; 优点&#xff1a;这种方法可以抓取几乎所有网站上的数据&#xff0c;支持GET和POST请求&#xff…