-
祸害阿里云宕机3小时的IO HANG究竟是什么?
关键字: 阿里云宕机IO HANG本文来自微信公号“CSDN”(ID:CSDNnews),作者 | 王知无, 责编| 郭 芮。
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=不可中断的睡眠进程
CPUcpu时间统计
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变差,轻则写入服务读写响应缓慢,重则导致大量进程长时间挂起,数据库拥堵卡死,服务器严重卡顿,甚至宕机。
作者:王知无,阿里巴巴高级大数据开发工程师,先后在京东,阿里等大型互联网公司从事大数据平台、实时计算和离线计算中间件和业务平台开发。自媒体人,业余讲师,希望为更多的互联网开发人员提供最新和最热的大数据方向的技术动态,技术前沿研究。
- 原标题:祸害阿里云宕机3小时的 IO HANG 究竟是个什么鬼?!
- 责任编辑:程北墨
- 最后更新: 2019-03-07 16:41:41
-
国家科技的引擎:军工巨头的权力密码
2019-03-07 13:39 -
5G谈“风暴”可能为之尚早,芯片厂商之间的拉锯战是热身赛
2019-03-07 13:35 科技前沿 -
中国手机“不克制”营销史
2019-03-07 11:34 手机 -
预防中兴式危机?日媒称华为向供应商提出扩大供给
2019-03-07 10:21 华为 -
“你打篮球像蔡徐坤”:微信翻译这个bug是怎么回事?
2019-03-07 10:13 TMT观察 -
中国页岩气单井日产量创新高
2019-03-07 07:28 能源战略 -
苹果供应商晒折叠屏大招:正研发可折玻璃
2019-03-06 21:38 苹果新“品” -
去年我国研发经费支出近2万亿元,比上年增11.6%
2019-03-06 21:03 科技前沿 -
只差一块钱,小米9和iQOO到底谁更香?
2019-03-06 17:41 手机 -
中国存储器能否打破海外垄断?
2019-03-06 17:29 TMT观察 -
-
小米卢伟冰总结魅族Note 9:遗憾还在继续
2019-03-06 17:06 -
三星正研发两款折叠屏手机,一款类似华为Mate X
2019-03-06 16:22 大公司 -
去年全球智能手机出货量减少5.1% 北美锐减13.2%
2019-03-06 14:57 手机 -
观点:提速降费与5G使能兼顾 运营商如何兼顾
2019-03-06 13:30 -
格力手机3代上架官网 售价3600元
2019-03-06 13:22 -
动工在即!华为要用100亿打造上海青浦研发基地
2019-03-06 12:14 大公司 -
“夜视眼药水” 治色盲有戏
2019-03-06 11:14 -
最新报告:万亿研发经费,中国都花在哪儿了?
2019-03-06 10:28 科技前沿 -
苹果iPhone XI配置曝光:三摄、水下模式、黑暗模式
2019-03-05 20:10 手机
相关推荐 -
“中国打贸易战有秘密武器:AI机器人大军” 评论 85中国不买美国液化气了,换中东 评论 105把中国货“藏”在加拿大,“我们赌特朗普会认怂” 评论 97扛不住了?特朗普释放对华缓和信号 评论 474最新闻 Hot
-
“共和党人气坏了,但碍于特朗普只能保持不安的沉默”
-
美媒放风:特朗普考虑大幅下调对华关税,或降至50%-65%
-
“纯关税壁垒最粗暴,欧盟快和中国谈吧”
-
总计7亿欧元,欧盟对苹果、Meta“罚酒三杯”
-
“俄乌都得在领土上让步,再不同意美国就退出”
-
中国不买美国液化气了,换中东
-
把中国货“藏”在加拿大,“我们赌特朗普会认怂”
-
涉及稀土,马斯克:正与中方协商
-
美国着急放风“即将与日印达成协议”,其实只是…
-
通用电气CEO:别打了,我们还没给中国交付...
-
哥伦比亚总统:我认为特朗普政府把我的签证吊销了
-
扛不住了?特朗普释放对华缓和信号
-
“孤立中国?东盟不会跟,否则…”
-
“中方对美方鸣枪示警:这回来真的,能一票否决”
-
“特朗普一声令下,美国几十年联越制华努力,白干了”
-
特斯拉净收入锐减71%,马斯克“认怂”
-