作者 | 王知无

责编 | 郭   芮

程序员转行学什么语言?

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

2019年3月3日凌晨,微博炸锅,有网友反映说阿里云疑似出现宕机,华北很多互联网公司受到暴击伤害,APP、网站全部瘫痪,我自己的朋友圈和微信群里也有好友反馈,刚刚从被窝被叫起来去修Bug,结果发现服务器登不上去了......

凌晨2点37分,阿里云官方回应称:华北2地域可用区C部分ECS服务器等实例出现IO HANG,经紧急排查处理后逐步恢复,此外将根据协议尽快赔偿。并已经全面排查其他地域及可用区,未发现此类情况。

IO HANG

那么问题来了,IO HANG是个什么鬼?简单的说,就是服务器磁盘读写过慢,导致线程和进程挂起。大量读写线程/进程挂起导致服务器宕机......

阿里云有大量的类似RDS、HybridDB数据库,支持海量数据在线事务(OLTP)和在线分析(OLAP),需要大量的IO读写,而Linux的IO性能将直接影响SQL的执行速度,严重情况下将导致服务器卡死和宕机。

如何监控自己服务器的IO情况呢?本文将带大家详细了解这些常用的命令。

如何监控自己服务器的IO情况?

常用的命令包括:top,iostat和iotop。那么他们都有什么区别,以及如何使用呢?我们一一分解。

我本机安装的是CentOS-7的虚拟机,内核信息为:

top命令

top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最"敏感"的任务列表,该命令可以按CPU使用、内存使用和执行时间对任务进行排序,而且该命令的很多特性都可以通过交互式命令。

在Linux下,输入`top` :

Tasks、Cpus、Mem和Swap分别代表了进程信息、CPU信息和内存信息。 各个列表示的指标意义如下 :

PID     进程id
USER    进程所有者用户名
PR      优先级
NI      nice值
VIRT    进程使用的虚拟内存总量
RES     进程使用的未被换出的物理内存大小
SHR     共享内存大小
S       进程状态 S=睡眠 T=跟踪  R=运行  Z=僵尸进程 D=不可中断的睡眠进程
CPU     cpu时间统计
MEM     物理内存占比
TIME+   进程使用的CPU时间总计 单位1/100秒
COMMAND 命令行命令名

top常用的交互式命令使用格式:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数说明:

d:指定每两次屏幕信息刷新之间的时间间隔,当然用户可以使用s交互命令来改变之;

p:通过指定监控进程ID来仅仅监控某个进程的状态;

q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行;

S:指定累计模式;

s:使top命令在安全模式中运行,这将去除交互命令所带来的潜在危险;

i:使top不显示任何闲置或者僵死进程;

c:显示整个命令行而不只是显示命令名。

通过top命令,我们即可查到当前服务器的进程占用CPU和内存情况。

iostat命令

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

基本使用:

$iostat -d -k 2

参数说明:

-d:显示设备(磁盘)使用状态;

-k:某些使用block为单位的列强制使用Kilobytes为单位;

2:数据显示每隔2秒刷新一次。

如果提示没有iostat命令需要使用yum安装,安装命令如下:

`yum install sysstat`

参数解释如下:

tps:该设备每秒的传输次数,一次传输意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”;

kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;

kB_read:读取的总数据量;

kB_wrtn:写入的总数量数据量,这些单位都为Kilobytes。

上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时瞬时统计的磁盘总TPS是1.88,下面是各个分区的TPS(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)。

在实际业务中,我们经常使用的命令是:

iostat -xdm

例如:iostat -xdm 2,2代表2秒钟刷新一次。

我们可以看到,%util这个参数即代表磁盘繁忙程度。100%表示磁盘繁忙, 0%表示磁盘空闲。但是我们需要注意,磁盘繁忙程度并不意味着磁盘读写速度大小。

iostat是系统级别的监控指令,iostat给我们的展示结果揭示了我们当前服务器磁盘的繁忙程度,虽然有一定的指导意义,但是不能精确到进程级别,这时候我们就需要iotop了。

iotop命令

我们上文讲到top命令,顾名思义,iotop代表io版本的top命令,使用起来简单粗暴,直接在命令行敲下:iotop。

iotop命令可以按进程统计IO状况,我们可以指导当前系统哪些进程在占用IO,百分比是多少,占用IO的进程是在读,还是在写,读写量是多少等信息。然后我们可以定位到具体的进程,查看进程详情。

同样个iotop命令有一个很像的命令叫做pidstat,参数很多。

例如:`pidstat -d` :

我们同样可以看到每个进程的读写情况,然后定位到具体的线程去查看问题。

总结

在生产实践中,实时监控我们的服务器IO情况至关重要,尤其是数据库所在的服务器,它直接关系到我们的程序的读写速度、SQL的执行情况等。

服务器IO的情况是我们选择服务器的重要考虑因素之一。IO变差,轻则写入服务读写响应缓慢,重则导致大量进程长时间挂起,数据库拥堵卡死,服务器严重卡顿,甚至宕机。

作者:王知无,阿里巴巴高级大数据开发工程师,先后在京东,阿里等大型互联网公司从事大数据平台、实时计算和离线计算中间件和业务平台开发。自媒体人,业余讲师,希望为更多的互联网开发人员提供最新和最热的大数据方向的技术动态,技术前沿研究。

声明:本文为作者投稿,版权归其个人所有。

 

如何挑战百万年薪的人工智能!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

热 文 推 荐

☞ 聊天宝解散罗永浩退出;三大运营商回应提速降费;天猫 iPhone XS 最高降 2000 | 极客头条

腾讯的“半条命”究竟给了谁? | 畅言

为什么我们需要数据预处理?

☞ 女神节该送程序媛什么礼物?保命指南来了!| 程序员有话说

☞ 小学生手写 Python 程序解魔方!这是高手,这绝对是高手!

小团队的微服务之路

首发 | 旷视14篇CVPR 2019论文,都有哪些亮点?

两会第一天, 大佬们关于区块链的探讨, 你要了解的都在这了

☞ 神操作!这段代码让程序员躺赚200万?给力!

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

喜欢就点击“好看”吧!

祸害阿里云宕机 3 小时的 IO HANG 究竟是个什么鬼?!相关推荐

  1. 阿里云宕一次机,会赔多少钱?

    倒霉的0.01%. 3月3日凌晨,阿里云出现宕机故障. 受宕机故障影响,华北不少互联网公司APP.网站纷纷瘫痪,一大波程序员.运营和运维不得不从被窝里爬起来干活. 更重要的是,这已经不是阿里云第一次出 ...

  2. 云宕机事件盘点:IBM云服务全球宕机四小时,安全稳定成空话?

    随着越来越多的企业及应用将它们的数据搬运至云端,即便只是云服务上的一个小小宕机事件,都可能引发一场大灾难. 6月10日,IBM云计算发生了长达四个小时的中断故障,导致多项托管于平台上的互联网服务中断, ...

  3. 2018年十大云宕机事故盘点:主流无一幸免!

    根据IDC今年7月份发布的<中国公有云服务市场半年度跟踪报告>显示,阿里云的市场占有率已过45%,腾讯云达到10%.在全球市场,根据Gartner最新数据显示,亚马逊AWS占全球份额的51 ...

  4. 阿里云虚机配置免费https证书

    引言 https 可以保护 web 连接不被劫持,保护用户信息:防止页面被植入广告(受够了csdn等的右下角弹窗),提高 SEO 权重. 阿里云虚机提供一个实惠的建站方案,但是并不直接支持 https ...

  5. Facebook全球宕机6小时!小扎损失60亿,15亿用户数据被出售

    转自:新智元 来源:verge 编辑:yaxin Facebook崩了,推特高傲尽显.美东时间10月4日上午11:45左右,社交平台Facebook.Ins,以及WhatsApp陷入大规模瘫痪,宕机近 ...

  6. 云堡垒机的作用_阿里云堡垒机详解

    阿里云堡垒机基于协议正向代理实现,对SSH.Windows远程桌面.SFTP等常见运维协议的 数据流进行全程记录,再通过协议数据流重组的方式进行录像回放,达到运维审计的目的. 堡垒机优势 审计合规 满 ...

  7. 阿里云本机一键登录集成

    阿里云一键登录集成 //本机号码一键登录 @weakify(self);//环境检查,异步返回[[TXCommonHandler sharedInstance] checkEnvAvailableWi ...

  8. 腾讯出行在微信内测试打车功能;​微软Teams全球宕机数小时后恢复正常;iOS 15.6 修复显示储存空间已满问题|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  9. 腾讯出行在微信内测试打车功能;​微软Teams全球宕机数小时后恢复正常;iOS 15.6 修复显示储存空间已满问题|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. ASP.NET的实时天气及24小时天气预报(C#)
  2. Random在for以及foreach循环中产生相同随机数问题
  3. 面向对象的 JavaScript 编程及其 Scope 处理
  4. win10不能访问局域网共享
  5. 打印菱形(曼哈顿距离法)
  6. xp系统 服务器访问账号,winxp系统下的网站出现访问的用户过多的解决办法
  7. RestTemplate实践(及遇到的问题)
  8. 从零开始学前端:CSS背景颜色 --- 今天你学习了吗?(CSS:Day09)
  9. (实用软件分享)屏幕取色器ColorPix
  10. Java IO实战操作(二)
  11. OpenAI挑战DOTA 2世界冠军OG,这是赌上人类尊严的决战
  12. 知识蒸馏 | 综述: 知识的类型
  13. axure element元件_Axure教程,产品小白从0学起
  14. 如何给linux安装yum,linux如何安装yum
  15. css代码 文字超出点点点
  16. 一个简单易用的Http访问工具类for Android
  17. javaIO模型-Socket实现一个简单的客服聊天功能的改造(二)
  18. 机场文员面试从何下手
  19. JS获取本机IP的工具类
  20. 【持续更新】量化交易论文综述

热门文章

  1. byte数组存的是什么_字节跳动为什么有字节2个字,因为程序的真谛:字节
  2. python js 性能_Python Json使用,Json库性能测试
  3. 中国塑料汽车外饰件市场趋势报告、技术动态创新及市场预测
  4. 电子过载继电器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  5. php cpu型号,linux如何查看cpu型号?
  6. 【IT】使用gdb调试code
  7. 1024程序员节再次引爆星城!千万程序员线上线下互动,共迎新程序员时代
  8. Pandas 中的这 3 个函数,没想到竟成了我数据处理的主力
  9. 专栏数量创新高、问答wap端新视觉
  10. 一转眼,距 2021 竟然就不到 65 天了,你准备好了么?