Li Kai

  • 主页
  • 所有文章
文章分类 友情链接 关于我

Li Kai

  • 主页
  • 所有文章

网络性能测试

2019-09-20

本文简单介绍一下网络性能的相关测试,包括吞吐量,抖动,丢包率,pps,qps,本文主要使用iperf3、netperf、wrk作为测试工具

1. 工具安装

1.1 iperf3

1
yum install iperf3

1.2 netperf

1
yum install netperf

1.3 wrk

1
yum install -y https://github.com/scutse/wrk-rpm/releases/download/4.1.0/wrk-4.1.0-1.el7.centos.x86_64.rpm

1.4 sar

1
yum install sysstat

2. 吞吐量测试

2.1 工具

  • iperf3

2.2 测试举例

需要两台机器,一台机器充当server,另一台充当client

server端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 启动服务,下面的输出结果,是在client发送数据的时候,输出的
[root@tstack-con01 ~]# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.30.134, port 50984
[ 5] local 192.168.30.133 port 5201 connected to 192.168.30.134 port 50986
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 1.14 GBytes 9.80 Gbits/sec
[ 5] 1.00-2.00 sec 1.71 GBytes 14.6 Gbits/sec
[ 5] 2.00-3.00 sec 1.73 GBytes 14.8 Gbits/sec
[ 5] 3.00-4.00 sec 1.87 GBytes 16.1 Gbits/sec
[ 5] 4.00-5.00 sec 1.90 GBytes 16.3 Gbits/sec
[ 5] 5.00-6.00 sec 2.09 GBytes 17.9 Gbits/sec
[ 5] 6.00-7.00 sec 1.66 GBytes 14.2 Gbits/sec
[ 5] 7.00-8.00 sec 1.67 GBytes 14.3 Gbits/sec
[ 5] 8.00-9.00 sec 1.76 GBytes 15.1 Gbits/sec
[ 5] 9.00-10.00 sec 1.75 GBytes 15.1 Gbits/sec
[ 5] 10.00-10.04 sec 67.4 MBytes 15.1 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.04 sec 17.3 GBytes 14.8 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

client端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 192.168.30.133为server端的ip地址
[root@tstack-com01 ~]# iperf3 -c 192.168.30.133
Connecting to host 192.168.30.133, port 5201
[ 4] local 192.168.30.134 port 50986 connected to 192.168.30.133 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 1.21 GBytes 10.4 Gbits/sec 0 1017 KBytes
[ 4] 1.00-2.00 sec 1.71 GBytes 14.7 Gbits/sec 29 1.11 MBytes
[ 4] 2.00-3.00 sec 1.73 GBytes 14.8 Gbits/sec 0 1.41 MBytes
[ 4] 3.00-4.00 sec 1.87 GBytes 16.1 Gbits/sec 3 1.16 MBytes
[ 4] 4.00-5.00 sec 1.90 GBytes 16.3 Gbits/sec 119 1.03 MBytes
[ 4] 5.00-6.00 sec 2.09 GBytes 17.9 Gbits/sec 0 1.29 MBytes
[ 4] 6.00-7.00 sec 1.64 GBytes 14.1 Gbits/sec 19 1.14 MBytes
[ 4] 7.00-8.00 sec 1.68 GBytes 14.4 Gbits/sec 0 1.14 MBytes
[ 4] 8.00-9.00 sec 1.76 GBytes 15.1 Gbits/sec 0 1.20 MBytes
[ 4] 9.00-10.00 sec 1.75 GBytes 15.1 Gbits/sec 0 1.21 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 17.3 GBytes 14.9 Gbits/sec 170 sender
[ 4] 0.00-10.00 sec 17.3 GBytes 14.9 Gbits/sec receiver

从测试结果可以看出,吞吐量为15Gb/s

3. 抖动和丢包率测试

3.1 工具

  • iperf3

3.2 测试举例

server端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@tstack-con01 ~]# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------


Accepted connection from 192.168.30.134, port 51048
[ 5] local 192.168.30.133 port 5201 connected to 192.168.30.134 port 42962
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 116 KBytes 950 Kbits/sec 3.666 ms 0/82 (0%)
[ 5] 1.00-2.00 sec 129 KBytes 1.05 Mbits/sec 0.022 ms 0/91 (0%)
[ 5] 2.00-3.00 sec 127 KBytes 1.04 Mbits/sec 0.009 ms 0/90 (0%)
[ 5] 3.00-4.00 sec 129 KBytes 1.05 Mbits/sec 0.008 ms 0/91 (0%)
[ 5] 4.00-5.00 sec 127 KBytes 1.04 Mbits/sec 0.004 ms 0/90 (0%)
[ 5] 5.00-6.00 sec 129 KBytes 1.05 Mbits/sec 0.010 ms 0/91 (0%)
[ 5] 6.00-7.00 sec 127 KBytes 1.04 Mbits/sec 0.011 ms 0/90 (0%)
[ 5] 7.00-8.00 sec 129 KBytes 1.05 Mbits/sec 0.002 ms 0/91 (0%)
[ 5] 8.00-9.00 sec 127 KBytes 1.04 Mbits/sec 0.008 ms 0/90 (0%)
[ 5] 9.00-10.00 sec 129 KBytes 1.05 Mbits/sec 0.006 ms 0/91 (0%)
[ 5] 10.00-10.04 sec 0.00 Bytes 0.00 bits/sec 0.006 ms 0/0 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec 0.006 ms 0/897 (0%)
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

client端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 添加-u来发送udp数据包,实现抖动和丢包率的测试
[root@tstack-com01 ~]# iperf3 -c 192.168.30.133 -u
Connecting to host 192.168.30.133, port 5201
[ 4] local 192.168.30.134 port 42962 connected to 192.168.30.133 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 116 KBytes 950 Kbits/sec 82
[ 4] 1.00-2.00 sec 129 KBytes 1.05 Mbits/sec 91
[ 4] 2.00-3.00 sec 127 KBytes 1.04 Mbits/sec 90
[ 4] 3.00-4.00 sec 129 KBytes 1.05 Mbits/sec 91
[ 4] 4.00-5.00 sec 127 KBytes 1.04 Mbits/sec 90
[ 4] 5.00-6.00 sec 129 KBytes 1.05 Mbits/sec 91
[ 4] 6.00-7.00 sec 127 KBytes 1.04 Mbits/sec 90
[ 4] 7.00-8.00 sec 129 KBytes 1.05 Mbits/sec 91
[ 4] 8.00-9.00 sec 127 KBytes 1.04 Mbits/sec 90
[ 4] 9.00-10.00 sec 129 KBytes 1.05 Mbits/sec 91
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.24 MBytes 1.04 Mbits/sec 0.006 ms 0/897 (0%)
[ 4] Sent 897 datagrams

iperf Done.

从结果可以看出,抖动为0.006ms, 丢包率为0%

4. pps测试

pps全称packets per seconds,也就是每秒钟发送的数据源包数量。

4.1 工具

  • netperf
  • sar

    4.2 测试举例

    本文使用两台主机实现pps测试。如果条件支持,建议多client进行发包测试。

    4.2.1 测试TCP_STREAM

在数据接收端运行server服务

1
2
[root@tstack-con01 tools]# netserver -p 12345
Starting netserver with host 'IN(6)ADDR_ANY' port '12345' and family AF_UNSPEC

在client端运行如下命令向server进行数据包的发送

1
2
3
4
5
6
7
8
9
10
11
12
# -H -p 指server端的ip地址和端口号
# -l 30 指发送30s
# -m 1 指发送数据包的大小,测试bps(bit per seconds)的时候,指定为1500
# 默认-t 为TCP_STREAM
[root@tstack-com01 ~]# netperf -H 192.168.30.133 -p 12345 -l 30 -- -m 1
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.30.133 () port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec

87380 16384 46 30.00 960.44

在server端通过sar对接收到的数据包进行统计

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 1  代表每隔1秒统计一次数据
# 20 代表统计20次取平均值
[root@tstack-con01 tools]# sar -n DEV 1 20|grep enp65s0f0
06:06:01 PM enp65s0f0 83469.00 7669.00 120201.31 494.81 0.00 0.00 3.00
06:06:02 PM enp65s0f0 84407.00 7120.00 121833.36 459.07 0.00 0.00 2.00
06:06:03 PM enp65s0f0 83608.00 6786.00 120906.84 450.03 0.00 0.00 3.00
06:06:04 PM enp65s0f0 84361.00 6718.00 122126.39 455.01 0.00 0.00 2.00
06:06:05 PM enp65s0f0 85174.00 6682.00 123558.96 450.80 0.00 0.00 3.00
06:06:06 PM enp65s0f0 83616.00 6661.00 121306.26 429.47 0.00 0.00 2.00
06:06:07 PM enp65s0f0 84546.00 6301.00 122792.27 406.26 0.00 0.00 3.00
06:06:08 PM enp65s0f0 85204.00 5990.00 123920.02 386.70 0.00 0.00 2.00
06:06:09 PM enp65s0f0 85298.00 5852.00 124089.33 377.84 0.00 0.00 3.00
06:06:10 PM enp65s0f0 85127.00 5858.00 123940.40 377.71 0.00 0.00 2.00
06:06:11 PM enp65s0f0 85266.00 5805.00 124079.54 374.78 0.00 0.00 3.00
06:06:12 PM enp65s0f0 84512.00 5738.00 123028.91 369.98 0.00 0.00 2.00
06:06:13 PM enp65s0f0 85252.00 6449.00 123783.21 416.31 0.00 0.00 3.00
06:06:14 PM enp65s0f0 84939.00 6099.00 123585.46 393.24 0.00 0.00 2.00
06:06:15 PM enp65s0f0 85487.00 5805.00 124518.71 374.67 0.00 0.00 3.00
06:06:16 PM enp65s0f0 85531.00 5758.00 124643.46 371.27 0.00 0.00 2.00
06:06:17 PM enp65s0f0 84083.00 6226.00 122316.70 401.93 0.00 0.00 3.00
06:06:18 PM enp65s0f0 84491.00 6072.00 123027.48 391.99 0.00 0.00 2.00
06:06:19 PM enp65s0f0 84907.00 5882.00 123676.07 379.26 0.00 0.00 3.00
06:06:20 PM enp65s0f0 85648.00 5772.00 124816.33 372.18 0.00 0.00 2.00
Average: enp65s0f0 84746.30 6262.15 123107.55 406.67 0.00 0.00 2.50

#从左到右每个数字的意义如下
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

#单位说明:
rxpck/s 每秒接受pps
txpck/s 每秒发送pps
rxkB/s 接受带宽
txkB/s 发送带宽

从结果可以看出,server端收8.4万,发是6k

4.2.2 测试UDP_STREAM发

本测试为UDP_STREAM数据包发送性能

在陪练机运行server服务

1
2
[root@tstack-con01 tools]# netserver -p 12345
Starting netserver with host 'IN(6)ADDR_ANY' port '12345' and family AF_UNSPEC

在测试机运行client服务进行UDP_STREAM发的测试

1
2
3
4
5
6
7
8
9
10
11
[root@tstack-com01 ~]# netperf -H 192.168.30.133 -p 12345 -l 20 -t UDP_STREAM -- -m 1
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.30.133 () port 0 AF_INET
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec

212992 1 20.00 9295295 0 3.72
212992 20.00 7720000 3.09

# 参数说明
Messages Okay:传输成功的数据包数量

从结果可以看出,UDP_STREAM发的测试结果是9295295/20=46万

4.2.3 测试UDP_STREAM收

测试流程是在陪练机启动client服务,记性数据包的发送,在测试机启动server,用来接收数据包,通过sar来对数据包的接收数量做统计。

陪练机启动client服务

1
2
3
4
5
6
7
8
[root@tstack-com01 ~]# netperf -H 192.168.30.133 -p 12345 -l 30 -t UDP_STREAM -- -m 1
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.30.133 () port 0 AF_INET
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec

212992 1 30.00 14362435 0 3.83
212992 30.00 11855222 3.16

测试机启动server服务

1
2
[root@tstack-con01 tools]# netserver -p 12345
Starting netserver with host 'IN(6)ADDR_ANY' port '12345' and family AF_UNSPEC

在测试机利用sar来进行数据包的统计工作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@tstack-con01 ~]# sar -n DEV 1 20|grep enp65s0f0
10:23:06 PM enp65s0f0 394128.00 15.00 23099.12 4.99 0.00 0.00 2.00
10:23:07 PM enp65s0f0 391051.00 4.00 22913.18 0.42 0.00 0.00 3.00
10:23:08 PM enp65s0f0 392257.00 2.00 22983.83 0.28 0.00 0.00 2.00
10:23:09 PM enp65s0f0 395070.00 7.00 23151.33 1.56 0.00 0.00 3.00
10:23:10 PM enp65s0f0 395360.00 1.00 23165.63 0.21 0.00 0.00 2.00
10:23:11 PM enp65s0f0 392057.43 0.99 22972.12 0.21 0.00 0.00 2.97
10:23:12 PM enp65s0f0 396273.00 47.00 23227.00 23.01 0.00 0.00 2.00
10:23:13 PM enp65s0f0 389787.00 82.00 22872.09 27.52 0.00 0.00 3.00
10:23:14 PM enp65s0f0 396265.00 3.00 23219.43 0.81 0.00 0.00 2.00
10:23:15 PM enp65s0f0 395449.00 1.00 23170.85 0.21 0.00 0.00 3.00
10:23:16 PM enp65s0f0 396839.00 1.00 23252.29 0.21 0.00 0.00 2.00
10:23:17 PM enp65s0f0 393822.00 3.00 23077.67 0.84 0.00 0.00 3.00
10:23:18 PM enp65s0f0 396418.00 3.00 23227.65 0.35 0.00 0.00 2.00
10:23:19 PM enp65s0f0 396228.00 7.00 23219.18 1.56 0.00 0.00 3.00
10:23:20 PM enp65s0f0 396245.00 3.00 23217.51 0.35 0.00 0.00 2.00
10:23:21 PM enp65s0f0 395187.00 3.00 23156.88 0.36 0.00 0.00 3.00
10:23:22 PM enp65s0f0 394884.00 2.00 23137.75 0.27 0.00 0.00 2.00
10:23:23 PM enp65s0f0 390526.00 30.00 22895.53 14.09 0.00 0.00 3.00
10:23:24 PM enp65s0f0 391885.00 5.00 22962.81 0.95 0.00 0.00 3.00
10:23:25 PM enp65s0f0 396712.00 1.00 23244.85 0.21 0.00 0.00 3.00
Average: enp65s0f0 394321.04 11.04 23108.27 3.92 0.00 0.00 2.55

从上面数据可以开出,UDP_STREAM收的pps是39万

5. qps测试

qps全称是queries per seconds,即每秒查询数,也就是每秒服务的处理请求数

5.1 工具

  • wrk
  • httpd

5.2 测试举例

测试过程是,服务端启动httpd服务,客户端通过wrk来进行压测,测试服务端的qps

服务器端启动httpd服务

1
2
3
4
5
6
7
8
9
10
[root@tstack-com01 html]# yum install -y httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package httpd-2.4.6-88.el7.centos.x86_64 already installed and latest version
Nothing to do
[root@tstack-com01 html]# cat /var/www/html/index.html
test qps
[root@tstack-com01 html]# curl http://192.168.30.134/index.html
test qps
[root@tstack-com01 html]#

client端安装wrk,并通过wrk进行压测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#参数分析
# -t4 开启4个线程
# -c10000 并发量为10000
# -d10s 测试持续10s
[root@tstack-con01 common]# wrk -t4 -c10000 -d10s http://192.168.30.134/index.html
Running 10s test @ http://192.168.30.134/index.html
4 threads and 10000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.91ms 15.42ms 953.75ms 95.58%
Req/Sec 31.68k 16.56k 66.90k 69.64%
176317 requests in 10.10s, 41.73MB read
Socket errors: connect 8983, read 0, write 0, timeout 0
Requests/sec: 17456.94
Transfer/sec: 4.13MB
[root@tstack-con01 common]#

从上面可以看出,在4线程,10000并发的情况下,qps是1.7万。

  • 计算机网络

扫一扫,分享到微信

微信分享二维码
Kubernetes容器安全之Apparmor
算法(十一)刷题常用语法python/go
  1. 1. 1. 工具安装
    1. 1.1. 1.1 iperf3
    2. 1.2. 1.2 netperf
    3. 1.3. 1.3 wrk
    4. 1.4. 1.4 sar
  2. 2. 2. 吞吐量测试
    1. 2.1. 2.1 工具
    2. 2.2. 2.2 测试举例
  3. 3. 3. 抖动和丢包率测试
    1. 3.1. 3.1 工具
    2. 3.2. 3.2 测试举例
  4. 4. 4. pps测试
    1. 4.1. 4.1 工具
    2. 4.2. 4.2 测试举例
      1. 4.2.1. 4.2.1 测试TCP_STREAM
      2. 4.2.2. 4.2.2 测试UDP_STREAM发
      3. 4.2.3. 4.2.3 测试UDP_STREAM收
  5. 5. 5. qps测试
    1. 5.1. 5.1 工具
    2. 5.2. 5.2 测试举例
收藏文章
登录
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
取消上传
评论内容为空!
还没有评论,快来抢沙发吧!
  • 最新评论
该评论已关闭!
likai博客正在使用畅言云评
去社区看看吧
去热评看看吧
  • 手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
    手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
  • 数据结构-队列 | LiKai的博客
    数据结构-队列 | LiKai的博客
  • SQL基础教程(四) | LiKai的博客
    SQL基础教程(四) | LiKai的博客
  • Golang高级教程(二)类型断言 | LiKai的博客
    Golang高级教程(二)类型断言 | LiKai的博客
  • 手把手教你如何用golang实现一个timewheel时间轮 | LiKai的博客
  • 数据结构-队列 | LiKai的博客
  • SQL基础教程(四) | LiKai的博客
  • Golang高级教程(二)类型断言 | LiKai的博客
热评话题
  • Golang高级教程(二)类型断言 | LiKai的博客
  • Golang高级教程(一)for-range, switch, select使用 | LiKai的博客
  • 算法(二)深度优先搜索DFS | LiKai的博客
  • 算法(三)二分查找 | LiKai的博客
  • 算法(八)最短路径 | LiKai的博客
  • 算法(五)回溯 | LiKai的博客
  • Python高级用法 | LiKai的博客
关闭
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
  • 你收到0条新通知
  • 你有0条评论收到赞同
  • 你有0条新回复
  • 本日畅言云评热评新鲜出炉啦!
  • 你有0个任务已完成
  • 你收获0个畅言云评足迹
© 2021 Li Kai
Hexo Theme Yilia by Litten
  • 文章分类
  • 友情链接
  • 关于我

tag:

  • test
  • 数据结构
  • shell
  • 计算机网络
  • 数据库
  • 负载均衡
  • ovn
  • 算法
  • linux
  • kubernetes
  • sql
  • python
  • openstack
  • designate
  • neutron
  • golang
  • timewheel

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 手把手教你如何用golang实现一个timewheel时间轮

    2021-04-04

    #算法#golang#timewheel

  • Golang线程池实现百万级高并发

    2021-03-21

    #golang

  • 基于ECMP的多活负载均衡策略

    2020-12-12

    #负载均衡

  • neutron metadata 服务详解

    2020-10-11

    #openstack#neutron

  • ovn为外部主机提供dhcp服务

    2020-09-20

    #ovn

  • Neutron网络troubleshooting

    2020-09-09

    #openstack#neutron

  • kubernetes中pod的自动伸缩

    2020-04-05

    #kubernetes

  • Golang高级教程(二)类型断言

    2020-02-04

    #golang

  • Golang高级教程(一)for-range, switch, select使用

    2020-02-02

    #golang

  • Kubernetes容器安全之Apparmor

    2020-01-04

    #kubernetes

  • 网络性能测试

    2019-09-19

    #计算机网络

  • 算法(十一)刷题常用语法python/go

    2019-07-18

    #算法#python#golang

  • 算法(十)快速排序

    2019-07-10

    #算法#python#golang

  • 算法(九)记忆化搜索

    2019-06-08

    #算法

  • linux常用指令

    2019-03-31

    #linux

  • OpenStack Designate简介

    2019-03-03

    #openstack#designate

  • 算法(八)最短路径

    2018-12-09

    #算法

  • 算法(七)并查集

    2018-10-21

    #算法

  • 算法(六)二叉树

    2018-09-19

    #算法

  • 算法(五)回溯

    2018-07-19

    #算法

  • Python yield使用

    2018-07-09

    #python

  • 算法(四)前缀和

    2018-07-05

    #算法

  • 算法(三)二分查找

    2018-05-19

    #算法

  • 算法(二)深度优先搜索DFS

    2018-04-20

    #算法

  • Python装饰器

    2018-04-19

    #python

  • Python高级用法

    2018-04-09

    #python

  • 算法(一)单调栈

    2018-03-19

    #算法

  • Python单例模式

    2018-03-08

    #python

  • Python编程规范

    2017-05-09

    #python

  • SQL基础教程(四)

    2017-04-19

    #数据库#sql

  • SQL基础教程(三)

    2017-04-11

    #数据库#sql

  • SQL基础教程(二)

    2017-03-24

    #数据库#sql

  • SQL基础教程(一)

    2017-03-19

    #数据库#sql

  • 9.计算机网络-QOS

    2016-08-19

    #计算机网络

  • 8.计算机网络-网络安全(下)

    2016-08-08

    #计算机网络

  • 7.计算机网络-网络安全(上)

    2016-08-01

    #计算机网络

  • 6.计算机网络-应用层

    2016-07-27

    #计算机网络

  • 5.计算机网络-传输层

    2016-07-24

    #计算机网络

  • 4.计算机网络-网络层

    2016-07-22

    #计算机网络

  • 3.计算机网络-数据链路层

    2016-07-17

    #计算机网络

  • 2.计算机网络-物理层

    2016-07-14

    #计算机网络

  • 1.计算机网络概述

    2016-07-09

    #计算机网络

  • Hash算法实现之MD5

    2016-04-09

    #算法

  • 数据结构-链表

    2016-04-02

    #数据结构

  • 数据结构-队列

    2016-04-01

    #数据结构

  • 数据结构-栈

    2016-03-31

    #数据结构

  • Shell基础

    2016-03-27

    #shell

  • Hello World

    2016-03-24

    #test

  • 我的博客园
  • 我的CSDN1
  • 我的CSDN2
李凯
研究生毕业于北邮
现就职于腾讯

一名奋斗在
OpenStack(Python)
Kubernetes(Golang)
的搬运工