From b4f57c40022c3eeff863c7d56ec25f222bc52e44 Mon Sep 17 00:00:00 2001 From: xuesong Date: Thu, 12 Nov 2020 23:50:58 +0800 Subject: [PATCH] Update Assignment6.md --- Assignment6.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/Assignment6.md b/Assignment6.md index 81ee073..1b9a103 100644 --- a/Assignment6.md +++ b/Assignment6.md @@ -38,41 +38,80 @@ 负载均衡的算法有很多,常见的如轮询,ip地址哈希,最小连接数等,应对不同的需求,感兴趣的同学可以去了解一下。 -`压力测试:` 测试一个系统的最大抗压能力,在强负载、高并发的情况下,测试系统所能承受的最大压力,预估系统的瓶颈。例如天猫双11之前,阿里内部会对整个淘宝平台进行全链路压测,预估应对峰值交易的能力。压力测试的工具有很多,今天我们练习使用非常简单的ApacheBench对http服务器进行压测。 +`压力测试:` 测试一个系统的最大抗压能力,在强负载、高并发的情况下,测试系统所能承受的最大压力,预估系统的瓶颈。例如天猫双11之前,阿里内部会对整个淘宝平台进行全链路压测,预估应对峰值交易的能力。压力测试的工具有很多,今天我们练习使用非常简单的ApacheBench(ab)对http服务器进行压测。 好,废话少说,咱们书归正传! ## 实验步骤 -### 一)使用ULB创建一个外网负载均衡器 +### 一)使用ULB创建一个外网负载均衡器。 #### 1)在产品->网络中选择负载均衡ULB,然后点击创建负载均衡。 #### 2)根据下图配置,选择按时付费。因为我们一会需要从外网访问Flask App,所以选择外网负载均衡。 + +#### 3)创建完毕后,记住ULB的IP地址,点击详情->VServer管理->添加VServer。这里VServer就可以看成是一个负载均衡服务器,负责分流。取任意VServer名称,其他保持默认设置,点击确定。 -#### 3)支付之后,数仓创建时间从几分钟到十几分钟不等,等状态显示“运行中”,则创建完毕。记住数仓的IP地址。 - + -### 二)登录数据仓库。Greenplum数据仓库的登录有很多方式,比如用PostgreSQL客户端登录,用Greenplum客户端登录,用JDBC(在Java中使用)或者ODBC(在C/C++中使用)访问,用psycopg2(在Python中使用)访问。本实验我们完成PostgreSQL客户端和psycopg2两种方式。其余方式同学们以后可以自行尝试。 +#### 4)点击“服务节点”标签页,当前没有任务实际的节点提供服务。我们接下来创建一些服务节点。 + + +### 二)使用云主机创建Flask App服务实例,并连接负载均衡器。 + +#### 1)创建一个1核1G的云主机,绑定弹性IP,选择web型防火墙,按时付费(已经很熟练了吧 :dog: :dog:) + +#### 2)使用docker file创建一个Flask App的image(比如实验2中的hello world),并且暴露docker容器的5000端口(因为Flask开发模式默认端口就是5000)。创建完毕之后运行docker,将5000端口映射到云主机的80端口。 -#### 1)使用PostgreSQL客户端登录。创建一个最低配置的Centos云主机,选择按流量计费,20M带宽,云主机按小时付费。登录以后运行以下命令,安装PostgreSQL客户端psql。 ``` -sudo yum install postgresql.x86_64 -y +docker run -d --rm -p 80:5000 -name myflask luxuesong/myflaskapp ``` +请同学们复习一下docker的安装和使用,以及通过dockerfile创建镜像。如果你意外保存了实验二的镜像,可以从镜像创建云主机,然后直接启动并docker run。 + +#### 3)打开浏览器,输入 `http://你的云主机外网ip`,测试app是否正常运行。正常则进入下一步。 + + + + + +#### 4)将云主机连到负载均衡器。回到前面添加服务节点的界面,输入端口80,则所有可添加的节点都会出现(以内网ip形式)。将你的云主机对应的内网ip,转移到待添加节点,点击确定。这时候显示健康检查“失败”,不用管它,我们在浏览器中输入 `http://你的负载均衡器ip`,奇迹发生了!我们也能访问flask app!!并且这时候健康检查也变成“正常”。 + + + + + +#### 5)此时负载均衡器只连接了一个服务实例,等同于单机访问。`为步骤三做准备,请在这一步制作当前云主机的镜像`。 + + +### 三)使用ab进行http服务器压力测试 + +#### 1)使用步骤二)中制作的镜像,创建三个最低配置的云主机(`和之前一样,只是在云主机创建界面用“自制镜像”,并且不需要弹性ip`),可以选择三台主机一次性创建 + + + + + +#### 2)创建完毕后,使用有外网ip的那台云主机,逐个ssh到三台内网机器上(通过内网ip),然后每台机器直接启动docker服务,并运行flask app容器(因为已经全都安装并且build好了 :smiley_cat: :smiley_cat: :smiley_cat:) + + + + + + + + + ##### 1.1)安装完毕后运行以下命令登录数据仓库。将相关参数替换成你的数据仓库参数。登录后将看到如下界面(我们已经在dev库中)。 ``` psql -h hostIP –U username -d database -p port ``` - - - ## `**************作业1:请将登录命令和登录成功界面截图,并插入实验报告***************`