大型分布式网站架构设计与实践——集群监控

news/2024/5/15 17:09:44/文章来源:https://blog.csdn.net/weixin_34064653/article/details/94018516

一、监控指标

成熟稳健的系统往往需要对集群运行时的各个指标进行收集,如系统的load、CPU的利用率、I/O繁忙程度、网络traffic、内存利用率、应用心跳等。

1、load
系统的load被定义为特定时间间隔内运行队列中的平均线程数,每一个CPU的核都维护了一个运行队列。
一般每个CPU当前的活动线程数不大于3,视为正常;大于5表示系统负载非常高了。
命令:top、uptime

 

2、CPU利用率
在linux系统下,CPU的时间消耗主要在这几个方面,即用户进程、内核进程、中断处理、I/O等待、Nice时间、丢失时间、空闲等几个部分,而CPU的利用率则为这些时间所占总时间的百分比。

us(User Time)用户时间,表示CPU执行用户进程所占用的时间;
sy(System Time)系统时间,表示CPU在内核态所花费的时间;
ni(Nice Time)调整优先级时间,表示CPU在调整进程优先级的时候花费的时间;
id(Idle Time)空闲时间,表示系统处于空闲期,等待进程运行,这个过程所占用的时间;
wa(Waiting Time)等待时间,表示CPU在等待I/O操作所花费的时间;
hi(Hard Irq Time)硬件中断时间,表示系统处理硬件中断所占用的时间;
si(Soft Irq Time)软件中断时间,表示系统处理软件中断所占用的时间;
st(Steal Time)丢失时间,表示当前虚拟机与该宿主上的其他虚拟机间的CPU争用时间;

命令: top + 1、 jps + top -p x

 

3、磁盘剩余空间
du -d1 -h /home
-d 指定递归深度,-h按照文件大小单位的格式化输出

 

4、网络traffic
sar -n DEV 1 1
-n 表示汇报网络状况,DEV查看各个网卡的网络流量,第一个1表示每秒抽样一次,第二个1表示总共取一次,
Average表示平均值。

 

5、磁盘I/O
iostat -d -k
-d 表示查看磁盘的使用情况, -k表示以KB为单位显示;

 

6、内存的使用
free -m

linux的内核会将剩余的内存申请为cached,而cached不属于free范畴,用于分配给程序的内存不仅仅只有free,还包括buffers和cached占用的内存;
对于应用来说,更值得关注的应该是虚拟内存swap的消耗,swap内存使用过多,表示物理内存不够用,操作系统将
本应该是物理内存的一部分内存页调度到磁盘上。swap I/O较为频繁,会严重影响系统的性能。
vmstat 可以查看到swap I/O情况

7、qps
query per second,即每秒查询数。qps在很大程度上代表了系统在业务上的繁忙程度,而每次请求的背后,可能对应着多次磁盘I/O、所赐网络请求,以及多个CPU时间片。

 

8、rt
response time 直接关系前端的用户体验。降低rt时间需要从各个方面入手,例如:部署CDN边缘节点来缩短用户请求的物理路径;通过内容压缩来减少传输的字节数;使用缓存来减少磁盘I/O和网络请求等。

 

CPU、内存、网络、磁盘、qps和rt,是所有类型的应用都需要关注;如select/ps、update/ps只针对数据库应用,thread running值针对MySql数据库应用,FullGC只针对Java应用。

 

9、select/ps
请求数量过多,则可以适当的增加读库,以降低系统读的压力;

 

10、update/ps、delete/ps
请求数量过多,则可以对相应的库进行拆分,将请求分散到其他集群;

 

11、GC
当GC发生时,JVM上的应用程序的工作线程会暂时停止运行,从外部来看便是程序暂时停止响应。可应对JVm的一些内存参数进行调整和优化,以降低GC时应用停止响应的时间。

 

二、心跳检测
对于自治的分布式系统而言,一般都会有一整套的集群心跳监测机制,能够实时地移除掉宕机的Slave,避免路由规则将任务分配给已宕机的机器来处理;

1、ping
ping指令能够检测网络链路是否畅通,远端主机是否能够到达;

2、应用层检测
使用应用层的心跳检测来对应用的健康状态进行监控,通过curl指令定时访问应用中的自检url,课实时地感知到应用的健康状态,一旦系统无响应或者响应超时,即可输出报警信息,以被相应的监控调度系统捕捉到,第一时间通知开发和运维人员进行处理;

3、业务检测
对于web程序,自动检测页面的异常情况;
3.1 通过页面大小的变动范围来判断页面是否出现异常,但是受大的改版影响比较大;
3.2 检测页面的返回值,但是这样检测跟具体的业务挂钩,或者对业务的代码具有一定的侵入性;

 

三、容量评估及应用水位
在新系统上线之前,或者需要在已在线的系统上做一些推广活动时,相关的业务方需要对系统的访问量进行评估;
1、业务方需要给出总的访问量(PV、UV)以后,推导到每个独立的子系统;

 

 

2、取其中的一个最小子集来进行压力测试,以便得出每个单元所能承载的访问量;
测试机器的配置需要与线上的机器保持一致,主要关心两个值qps、rt,当rt达到无法忍受的上限时,或者系统某些地方开始出现瓶颈,如内存不足,系统频繁Full GC,I/O等待时间过长,CPU load超高,这个时候的qps便是一个单元能够承受的极限值;

3、对系统进行评估出需要的机器数;
使用80/20原则,80%的访问请求将在20%的时间内到达,这样便可以根据系统对应的PV计算出系统的峰值qps
峰值qps=(总的PV*80%)/(60*60*24*20%)
机器数 = 总的峰值qps / 压测得出的单台机器极限qps


4、系统上线或者正在承受比较大压力时,通过当前的运行水位图来了解当前系统的压力;
通过访问日志分析,或者其他的统计手段,实时计算出当前系统的qps值(前1~2分钟的平均值),然后结合系统上线之前压测得到的单台机器的极限qps,乘以当前部署的机器总数,便能得到当前的水位:
当前水位 = 当前总qps / (单台机器极限qps*机器数) * 100%

转载于:https://www.cnblogs.com/renwei/p/5305449.html

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户访问网站的完整流程

用户访问网站的完整流程在浏览器输入想要访问的域名之后,浏览器会进行域名解析获得IP地址,在经过TCP的连接,实现数据的传输就会有两种报文,及请求报文和响应报文。最终才能实现通信。因此想要实现通信,就得先弄懂DNS的…

使用Python Django在Ubuntu下搭建数据库型网站

最近想做一个数据库网站,我对Python很熟悉,也了解到Django很好用,于是说搞就搞。 首先,在快云上买了一个vps,一元试用一个月,Ubuntu系统。 1.安装Django apt-get update apt-get install python-pip python…

大流量网站性能优化:一步一步打造一个适合自己的BigRender插件

BigRender 当一个网站越来越庞大,加载速度越来越慢的时候,开发者们不得不对其进行优化,谁愿意访问一个需要等待 10 秒,20 秒才能出现的网页呢? 常见的也是相对简单易行的一个优化方案是 图片的延迟加载。一个庞大的页面…

快信达SEO记录2016.07.16

为什么80%的码农都做不了架构师?>>> 2016-7-16 快信达网站改版完成,将顶级域名301转向到www二级域名,友情链接0个,外链1个欣联盛。 seo策略规划: 改版后先不换友链,持续更新文章,看…

移动端页面SEO优化需要注意的10个要点

如今,移动互联网已经成为互联网组成的非常重要的一个分支,如果说以前对移动页面没有很规范的优化和高质量内容评判划分标准,但现在随着各大搜索引擎发布了移动建站指南,图文并茂的描述了如何提高移动站在百度质量度的等级&#xf…

大型网站技术架构(3):WEB 前端性能优化

为什么80%的码农都做不了架构师?>>> 上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化&#xf…

借助GitHub pages搭建静态个人网站并绑定域名

借助GitHub pages搭建静态个人网站并绑定域名 借助GitHub pages搭建静态个人网站并绑定域名一、简介二、准备1.注册GitHub账号2.安装好Git3.购买域名(非必选) 三、创建、设置GitHub pages并绑定域名1.创建仓库2.设置仓库3.进行网站开发4.域名绑定&#x…

java获取https网站证书,附带调用https:webservice接口

一、java 获取https网站证书: 1、创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import j…

Gif 网站图

转载于:https://www.cnblogs.com/wwknan/p/10517552.html

PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例

问:什么叫WAMP?答:Windows下的ApacheMysqlPHP,称之为WAMP。 本文案例采用的PHP集成环境是我自己开发的纯绿色版WAMP软件(PHPWAMP)。 我在这款集成环境里集成的组件都是完全版的,适合本地调试&am…

网站使用微信扫码登录流程

微信扫码登录是一个标准的oauth 2.0的过程。 1.用户请求访问网站,选择微信登录。 2.redirect到微信二维码页面 3.获取微信登录二维码,请求参数包括本网站的appId和登录成功后跳转回的地址,即relaystate. 4.返回二维码网页。 5.二维码扫入手机…

大型网站提速方案(第一篇)

随着互联网的迅速发展,大访问量大数据库带来的访问慢逐渐成为网站发展的瓶颈,从动态网站的访问过程我们可以发现,网站提速的需要将动态网站的访问过程中的关键技术给与提速。于是就引申出了缓存技术和页面静态话技术和数据库的优化技术。 页面…

XenDesktop7实践之高可用设计④DDC安装和创建站点

XenDesktop7实践 之高可用设计 ④DDC安装和创建站点 目 录 1. 第一台Delivery Controller服务器... 1 1.1. 安装Delivery Controller. 1 1.2. 创建空站点... 7 2. 第二台Delivery Controller服务器... 15 2.1. 安装Delivery Controller. 15 2.2. 扩展部署... 15 1. 第一台Deliv…

构建Nginx网站服务

随着计算机与Internet技术的蓬勃发展,各种Web站点成为直接面向用户的中坚力量,在各种网站服务器软件中,除了Apache外,还有一款轻量级的HTTP服务器软件——Nginx,其稳定性、高效的特性逐渐被越来越多的用户认可。本篇博…

10个值得推荐的免费设计模板网站

2019独角兽企业重金招聘Python工程师标准>>> 对很多设计师来说,现成的模板无疑可以大大地提高工作的效率和质量,尤其是在赶项目进程的时候。然而要找到合适且免费的模板又是另外一个难题,这里我整理出来10个值得推荐的设计模板网站…

网站模糊测试爆破工具Wfuzz

2019独角兽企业重金招聘Python工程师标准>>> 网站模糊测试爆破工具Wfuzz 模糊测试爆破使用模糊测试的方式对HTTP请求中的各个参数同时进行猜测爆破。例如,渗透测试人员可以采用不同的HTTP请求方式来访问由字典生成的网页路径,以判断网页目录或…

干货:模板网站SEO优化技巧!

对企业来说,线上流量的关键就是SEO优化。模板网站是否有利于SEO优化?很多人会以为定制网站比模板网站更利于优化,其实并不全对。下面笔者就为大家解答模版网站如何进行SEO优化。模版网站不利于SEO优化吗?SEO优化刚流行时&#xff…

搭建静态网站

2019独角兽企业重金招聘Python工程师标准>>> 搭建Http静态服务器环境 任务时间:15min ~ 30min 搭建静态网站,首先需要部署环境。下面的步骤,将告诉大家如何在服务器上通过 Nginx 部署 HTTP 静态服务。 安装 Nginx 在 CentOS 上&am…

jvisualvm安装btrace插件,更新设置(java.net网站已关闭)

转载自:http://blog.csdn.net/keketrtr/article/details/74448127jdk1.7自带jvisualvm可以对java应用进行监控。其中有个插件btrace可以监控各个方法的所用时间。安装插件的步骤是打开jvisualvm,点击工具->插件,点击更新,发现无…

6个神级编程实战网站,堪称程序员的充电站!

伟大的乔布斯曾经说过,每个人都应该学习给电脑编写程序的技术,因为这一过程能够教你如何去思考。而学习编程的方式有多种多样,你可以通过看书、视频教学的方式学习编程。 程序员们就像是一个个1024,改变这个世界。不过再厉害的程…