Skip to content

Commit 03e7887

Browse files
author
王炳明
committed
Update
1 parent cbc4fbb commit 03e7887

2 files changed

Lines changed: 172 additions & 3 deletions

File tree

source/c04/c04_15.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -917,6 +917,36 @@ PyCharm 打开一个文件,就占用一个标签面。
917917

918918
![](http://image.iswbm.com/20200420090428.png)
919919

920+
## 4.15.37 快速输入自定义代码片段
921+
922+
在 PyCharm 中有一个功能叫 Live Template,它可以用来自定义一些常用的代码片段。
923+
924+
比如下面这段,几乎是写 Python 脚本必备的
925+
926+
```python
927+
if __name__ == '__main__':
928+
```
929+
930+
当你在PyCharm 中编码 python 代码时,只要输入 main ,PyCharm 就会在 Live Template 里找到定义过的代码片段,然后只要直接键入回车,就可以生成这段代码。
931+
932+
再比如说,我通常会定义简单的装饰器代码
933+
934+
![](http://image.iswbm.com/20200723161209.png)
935+
936+
这样当我要定义一个最简单的装饰器时,只要输入 `deco` 再直接敲入回车就行啦。
937+
938+
![](http://image.iswbm.com/20200723161307.png)
939+
940+
941+
942+
943+
944+
[PyCharm 使用技巧](https://blog.csdn.net/xiemanr/category_6928127.html)
945+
946+
947+
948+
949+
920950
## 附录
921951

922952
- [PyCharm 快捷键 Mac 版 ](https://resources.jetbrains.com/storage/products/pycharm/docs/PyCharm_ReferenceCard_mac.pdf)
Lines changed: 142 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ ToS 字段,总共 8 个 bit
7070

7171
为优选权子字段,现在已经废弃,这个字段默认值是000,从wireshark抓包结果看,表示的是:
7272

73-
![003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明](https://s4.51cto.com/images/blog/201804/25/ede8e1de3c98c2fdfeb044cb0cf74034.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
73+
![](http://image.iswbm.com/20200723155027.png)
7474

7575
但是在某些协议中仍然是有用的,比如 OSPFv2 协议
7676

@@ -104,9 +104,9 @@ ToS 字段,总共 8 个 bit
104104
IP首部中的ToS字段,只能表示一种服务类别,也就是:这4bit字段中,最多只能有一个bit字段为1。
105105

106106
看下不同应用下该4bit字段对应的值:
107-
![003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明](https://s4.51cto.com/images/blog/201804/25/3c42c64b7240ef12b991f69644a145ac.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
107+
![](http://image.iswbm.com/20200723154704.png)
108108
翻译过来就是:
109-
![003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明](https://s4.51cto.com/images/blog/201804/25/4f03b09e8081d8fc7073f29870bc1c95.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
109+
![](http://image.iswbm.com/20200723154742.png)
110110
**最小延迟**,对应于对延迟敏感的应用,如telnet和人login等。
111111
**最大吞吐量**,对应于对吞吐量要求比较高的应用,如FTP文件应用,对文件传输吞吐量有比较高的要求。
112112
**最高可靠性**,对网络传输可靠性要求高的应用,如使用SNMP的应用、路由协议等等。
@@ -221,6 +221,145 @@ $ ovs-appctl -t ovs-vswitchd qos/show vhu198063e9-97
221221

222222
![](http://image.iswbm.com/20200709171517.png)
223223

224+
225+
226+
测试限速
227+
228+
average: 100M
229+
230+
231+
232+
233+
234+
```shell
235+
# burst:50
236+
$ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=7500 __system__vif_outbound_average=12500 __system__vif_outbound_burst=6000
237+
238+
239+
# burst:60
240+
$ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=7500 __system__vif_outbound_average=12500 __system__vif_outbound_burst=7500
241+
242+
# burst:70
243+
$ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=8750 __system__vif_outbound_average=12500 __system__vif_outbound_burst=8750
244+
245+
# burst:80
246+
$ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=10000 __system__vif_outbound_average=12500 __system__vif_outbound_burst=10000
247+
```
248+
249+
250+
251+
## 3. 带宽单位换算
252+
253+
带宽,英文名 Bandwidth,在不同领域的含义各不相同,而在网络服务中,带宽是指单位时间内的流经数据量。
254+
255+
数据量的单位一般有两种:bit 和 Byte。
256+
257+
因此,带宽的单位即为,b/s 或者 B/s,如果数值较大,可以使用 K 表示千(Kb/s 或者 KB/s),M 表示 百万(Mb/s 或者 MB/s)。
258+
259+
- Mb/s:Million bits per second的缩写,是一种传输速率单位,指每秒传输的位(比特)数量。通常用于运营商带宽速率的计量。
260+
261+
- MB/s:Million Bytes per second的缩写,是一种传输速率单位,指每秒传输的字节数量。即是我们平时说的下载速度。
262+
263+
264+
265+
Byte 和 bit 是不一样的,Byte = 8 bit,而不同的地方单位不同,需要进行换算,下表整理了在 VMP 中的各个位置的单位
266+
267+
| type | cloud | meta | xml | qos rule | ovs-vsctl/ovs-appctl |
268+
| ---- | ----- | ---- | ---- | -------- | -------------------- |
269+
| ovs | bit | Byte | Byte | | |
270+
| dpdk | bit | Byte | | bit | bit |
271+
272+
## 4. 带宽限制效果
273+
274+
### CentOS 安装 iperf3
275+
276+
源码编译安装 iperf3
277+
278+
```shell
279+
yum -y install gcc make wget
280+
cd /tmp
281+
wget https://iperf.fr/download/source/iperf-3.1.3-source.tar.gz
282+
tar zxvf iperf-3.1.3-source.tar.gz
283+
cd iperf-3.1.3
284+
./configure
285+
make
286+
make install
287+
```
288+
289+
使用 rpm 包安装(更简单,推荐)
290+
291+
```shell
292+
$ rpm -ih ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/updates/24/x86_64/i/iperf3-3.1.3-1.fc24.x86_64.rpm
293+
```
294+
295+
### Windows 安装 iperf3
296+
297+
所有的 windows 可用的 iperf3 安装包都可以从这个页面下载:https://iperf.fr/iperf-download.php
298+
299+
这里直接给出两个 windows 常用的
300+
301+
- windows 10 64位:https://iperf.fr/download/windows/iperf-3.1.3-win64.zip
302+
- windows 10 32 位:https://iperf.fr/download/windows/iperf-3.1.3-win32.zip
303+
304+
下载到电脑到,并解压后,会得到两个文件:`cygwin1.dll``iperf3.exe`,将这两个文件拷贝到 `c:\windows` 目录下。
305+
306+
最后打开 cmd,执行 `iperf3 --version` ,若安装成功,会打印出版本信息。
307+
308+
### iperf3 使用前关闭防火墙
309+
310+
CentOS 关闭防火墙,只要一条命令
311+
312+
```shell
313+
$ systemctl stop firewalld
314+
$ systemctl stop iptables
315+
```
316+
317+
windows 10 手动设置一下
318+
319+
![](http://image.iswbm.com/20200716112516.png)
320+
321+
322+
323+
### iperf3 的使用
324+
325+
iperf3 有客户端 和 服务端之别:
326+
327+
- 服务端:收包,使用 `-s` 参数指定
328+
329+
```shell
330+
$ iperf3 -s
331+
```
332+
333+
- 客户端:发包,使用 `-c xx.xx.xx.xx` 来指定要往哪个服务端发包
334+
335+
```shell
336+
$ iperf3 -c 172.20.20.200
337+
```
338+
339+
iperf3 还有更多的参数,其中有一些是客户端专用的,有一些是服务端专用的,也有一些是二者共用的。
340+
341+
具体可以前往这个地址,进行查阅:https://www.cnblogs.com/yingsong/p/5682080.html
342+
343+
常用的参数有
344+
345+
- `-u`:发送 UDP 包,仅客户端 可用
346+
- `-p`:后接服务端监听的端口
347+
- `-i`:设置带宽报告的时间间隔,单位为秒
348+
- `-t`:设置测试的时长,单位为秒
349+
- `-w`:设置tcp窗口大小,一般可以不用设置,默认即可
350+
351+
352+
353+
354+
355+
## 5. 注意事项
356+
357+
1、vm 在 host1 上,从host2 上 iperf 比在 host1 上限速效果更好
358+
359+
2、udp 包限速效果差异很大。
360+
361+
362+
224363
## 3. 参考文章
225364

226365
- https://blog.51cto.com/mangguostudy/2107799

0 commit comments

Comments
 (0)