故障诊断,智能运维文章都在这了

2017年最精彩的自动化运维、智能运维文章都在这了,2017年

2017年,我们不断的探索运维自动化,努力将运维从苦海中解救出来。

关于“运维自动化”的热门文章都在这了:

  • 有赞数据库自动化运维实践之路

  • 顺丰全栈资源下的自动化运维灵魂

  • 六个人如何运维一万台服务器?

  • 从ITIL到SRE | 唯品会运维自动化实践

  • 去哪儿网的硬件自动化运维体系建设之路

  • 不会 Python 的运维都将失业?(内含福利)

  • 8亿人晒军装:背后的运维技术大揭密!

  • 自动化运维之架构设计六要点 | 腾讯大梁专栏

  • 老司机带你飞|怎样构建基于SDN网络的自动化运维系统?

  • 魅族容器云平台基于k8s的自动化运维实践

  • 中国人寿自动化运维自主研发之路

  • 中小企业如何优雅的管理多机房服务器账号

  • 链家网的第三种运维

  • 就是干!移动的运维实践之路

  • 腾讯上万节点大规模集群的跨城自动迁移

  • 阿里大规模计算平台的自动化、精细化运维之路

  • 携程网基于应用的自动化容量管理与评估

  • 360网络运维自动化演进之路

  • 盛大游戏万台服务器自动化运维

  • 【重磅】显微镜下的运维自动化

  • 从“救火队长”到“自动运维”,值得收藏的运维知识深度普及贴!

  • 实战:基于Python构建运维自动化平台

  • 如烹小虾: 运维自动化闭环,腾讯是这样做的

  • 全自动部署KVM虚拟机的设计与实现

  • 运维自动化之殇

  • 浅谈自动化运维设计思想

  • 运维自动化与标准规范化:解析、设计及实现

  • 中小企业运维自动化部署实战

这时,AIOps的到来,让运维自动化指日可待

裴丹

清华大学副教授 ,青年千人

清华裴丹:AIOps 落地路线图

清华裴丹:我在智能运维科研领域的一些思考

赵建春

腾讯SNG 助理总经理,GOPS 金牌讲师

腾讯赵建春:AI浪潮下的高效运维思考及实践

张博

搜狗运维保障部总监

揭秘人工智能下的搜狗智能运维实践

吴树生

腾讯高级工程师,负责SNG大数据监控平台建设

如何实现多维智能监控?–AI运维的实践探索

2018年,在哪里还能 get 到关于自动化运维、智能运维

最用心、可落地的分享?

在哪里可以学习到没有套路,没有广告,只有最前沿的,深入浅出的干货?

2018年,GOPS 全球运维大会第一站:深圳站

—— AIOps 风向标

GOPS全球运维大会由高效运维社区(GreatOPS)和开放运维联盟(OOPSA)联合主办,指导单位为工信部信通院数据中心联盟(DCA)。全球运维大会是国内第一个运维行业大会,面向互联网及传统行业、广大运维技术人员,传播先进技术思想和理念,分享业内最佳实践。

2016年GOPS四次大会参会嘉宾累计突破1.2万人次,分别为:深圳站、上海站、美国站和北京站,国内三站均为本地区最大规模的高端运维盛会,满意度和推荐度高达95%以上。

2017年GOPS大会分别为北京站,深圳站,上海站,参会人数超过万人以上,涉及互联网,教育,医疗,军工,地产,金融,银行,证券,保险,物流,中小企业,电信,移动,游戏,制造业等等行业,参会人员以运维经理运维总监为主,以及系统架构师,网络工程师,CIO 
CTO  CEO等。

目前已经确认参会分享的大咖们:

欢迎在运维领域颇有建树的您成为GOPS讲师

有意向的老师请联系:[email protected]

全球运维大会共设 19个专场,无论你想学习哪一个方向,都有你要的。

全球运维大会重量级议题:

推荐演讲

《衡量 – DevOps 架构下的人工智能思维》

衡量不是一种工具或是产品,而是一种工作方式。人 + AI=
正如钢铁人与他的人工智能 JARVIS
之间的运作方式,由AI来提供参考数据辅助人类进行决策,其实它就是一种衡量。虽然未来是无法预测的,但却是可以衡量的,只是我们没有去做罢了,而人工智能正可以扶助我们做到更好的衡量,但对人类而言重点还是在观念,一种对或然率的正确观念。本演讲将说明如何将衡量的观念运用在DevOps的开发框架三步工作法中。

讲师介绍:李智桦,台湾著名精益布道师、敏捷顾问。《精实开发与看板方法》、《Windows
Azure云端开发》、《WF工作流程引擎程序设计》等书的作者。1981
毕业于台湾淡江大学物理系。专业的软件工程顾问、Scrum及看板课程教学的讲师。担任过四家信息公司的研发部经理。擅长新创公司的项目开发工作,拥有超过30年以上的程序撰写经验。曾任多家著名企业的敏捷顾问。爱好撰写程序,包括汇编语言、C#、VB数种语言。是
OpenSource 的拥护者,开放自己所有的程序代码。

《千亿交易背后的0故障发布》

天下武功,唯快不破,互联网产品尤其这样,迭代速度成为了产品能取胜的关键点,快速稳定的发布成为了帮助产品或者用户更快的实现业务目标的重要竞争力。随着运维工具(发布系统)的逐步完善,发布已经越来越容易、越来越高效,从传统的几个月发布一次已经能够做到一天发布多次,但单日均几万的发布量,涉及几千的产品,如何在快速迭代中保障发布不出问题,却是摆在各个研发同学面前一个头痛的事情。阿里的发布系统(诺曼底)一直致力于发布稳定性的保障,尽量减少发布过程引起故障,为此,我们引入了一套智能化的解决方案–无人值守发布,来提前发现和终止发布带来的问题。

讲师介绍:少荃,阿里巴巴运维技术专家。在阿里多年,从事过业务系统的开发,也负责过核心系统,这几年投入到运维领域的系统研发,主要负责阿里的发布系统,致力于提升发布的效率和稳定性,研发过大规模文件分发利器-蜻蜓等,近期主要在做研究智能化在发布稳定性保障这方面的实践。

《负重前行—顺丰数据库运维的求变之路》

从技术和管理2条线,历数顺丰数据库架构,从传统Oracle全面转向大型分布式Mysql集群的关键节点,一场高速运行的列车上换轮子的历程;并介绍为了适应这种变化,顺丰DBAs打造的智能运维利器:Thinkdb-运维管理平台。

讲师介绍:刘力,顺丰科技
应用数据支持部负责人。2013年加入顺丰科技,数据库团队负责人,主导了顺丰科技数据库架构从非标到标准,从传统到开源,从集中到分布式的技术演进;带领DBAs,从被动到主动,从不变到求变,从人工到智能的运维模式转变。十余年大型数据库架构设计和管理经验;曾任职平安科技,负责银行业务线数据库架构设计和管理。

更多演讲内容介绍请前往大会官网:

⬆️ GOPS 2018 深圳站

GOPS2018深圳站大会出品人:

按字母顺序排列

欢迎在运维领域颇有建树的您成为GOPS出品人

有意向的老师请联系:[email protected]

引领着中国运维行业发展的 GOPS 已经走到了第九届,在新的一年中,GOPS作为
AIOps
的风向标
,继续带领广大运维朋友探索运维行业的发展方向与最佳实践。

⬇️ 都有谁参加过GOPS

⬇️ 参会者职位

⬇️ 参会者行业

⬇️ 工作年限

⬇️ 公司服务器规模

报名方法

长按二维码,进入官网报名,大会早鸟价倒计时1个月。

3人以上团购优惠请联系刘静:130 2108 2989

⬆️ 官网报名

⬆️ 限时早鸟价6折票

商务合作请联系刘欣:158 0111 5386

送礼物啦

在你的头脑中,AIOps 是什么?

分享给我们吧,24h留言Top5将获得《 DevOps
三十六计-运维珍藏版》一本哦,兑奖请联系:刘静:130 2108 2989

点击阅读原文,参与2018年运维人的开年聚会吧!

故障诊断 | 系统级追踪诊断方法及案例分享,故障诊断案例

点击上方蓝色文字关注↑↑↑↑↑

所谓操作系统,是应用程序与服务器硬件进行沟通的中间层。应用程序的所有操作,都是和操作系统进行沟通交互。操作系统负责将所有交互转化为设备语言,进行硬件交互。

我们在进行Oracle故障调试和内核原理工作的时候,经常需要了解后台运行的动作和细节。一些故障场景,如ORACLE后台进展慢、程序无法启动、无法登陆、相同环境执行结果却大不相同等问题,就需要操作系统级别监控,检查定位问题。

Oracle自身已经提供了很多这类型的工具,如oradebug、各种等待事件和跟踪方式。此外,各类型的操作系统提供出很多系统级别工具,帮助我们进行监控。

 

我们先来看一个简单的示例:

LGWR进程写 online redo log是否用到缓存?

这里的这个缓存不是指数据库缓存,操作系统的文件缓存,如果对这个问题不明白,我们先看另外一个问题,我们如果怀疑存储有问题,经常会使用DD命令对磁盘进行测试,相关命令如下所示,那这个命令对磁盘的操作是直接写磁盘还是把数据写到文件缓存里去?

我们来实地进行测试验证看一下,这是在我电脑虚拟机上的一个测试结果,DD了2G的文件,花了4.99秒的时间,实际上这个命令结束的时候数据没真正写到磁盘上去,对于磁盘的写到缓存就返回了。我们另外看一条命令

这里加了一个标志,就是ofag=sync,加完这个标示之后,我们发现写磁盘的速度下降了,写2G的文件花了8秒,多用了60%的时间。这就是文件系统缓存的作用,文件系统缓存大大增加了主机的性能。

我们现在回到之前那个问题,LGWR进程写redo log
会不会用到缓存呢?我们使用strace
–p命令来跟踪LGWR进程,为方便观察我们添加一组新的redo日志组并进行切换。

通过分析TRACE信息我们发现,LGWR进程对online redo
log打开使用了o_sync标示,该标示表示直接写入存储设备。

TRUSS/TUSC/STRACE是什么?

下面我引用一下TRUSS的官方解释,TUSC与STRACE工具功能基本一样。

它是一个在系统层处理复杂问题非常有用的工具,用来跟踪一个进程的系统调用或者信号产生的情况。适用于不同的系统环境。

它们适用于不同的Unix环境:

•      Truss : AIX,Solaris

•      Tusc  :HP-Unix(需单独安装)

•      Strace:Linux

Truss常用参数介绍

参数 介绍
-a 显示在每一执行系统调用中传递的参数字符串。
-c 计数跟踪系统调用、故障和信号而不是逐行显示跟踪结果。跟踪命令终止或 truss 中断时生成摘要报告。若还使用 -f 标志,计数包含所有跟踪的系统调用、故障和子进程信号。
-d 每行输出包含时间戳记。时间从跟踪开始以每秒显示。跟踪输出的第一行显示测量单个时间戳记的基本时间。缺省不显示时间戳记。
-D 每行输出显示增量时间。增量时间表示从由该线程引起的最后报告事件起计时引起事件的 LWP 的逝去时间。缺省不显示增量时间。
-e 显示在每一执行系统调用中传递的环境字符串。
-f 跟在 fork 系统调用产生的所有子进程之后,并包含跟踪输出中的信号、故障和系统调用。 通常,仅跟踪第一级命令和进程。如果指定 -f 标志,进程标识与每行跟踪输出一起显示哪个进程执行系统调用或接收信号。
-l 显示有关 LWP 进程的标识(线程标识)及 truss 输出。输出中缺省不显示 LWP 标识。
-o 指定用于跟踪输出的文件。缺省时输出指向标准错误。
-p 将参数作为一列现存进程的进程标识而不是要执行的命令解释到 truss。 倘若进程用户标识或组标识与用户的用户标识或组标识匹配或者用户是特权用户,truss 控制并开始跟踪每个进程。

Tusc常用参数介绍

Strace常用参数介绍

参数 介绍
-c 统计每一系统调用的所执行的时间,次数和出错的次数等.
-d 输出strace关于标准错误的调试信息.
-f 跟踪由fork调用所产生的子进程. 
-ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.
-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.
-h 输出简要的帮助信息.
-i 输出系统调用的入口指针.
-q 禁止输出关于脱离的消息.
-r 打印出相对时间关于,,每一个系统调用.
-t 在输出中的每一行前加上时间信息.
-tt 在输出中的每一行前加上时间信息,微秒级.
-ttt 微秒级输出,以秒了表示时间.
-T 显示每一调用所耗的时间.
-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.
-V 输出strace的版本信息.

下面我们看两个简单的使用示例:

首先是使用strace –tt
date来跟踪date命令,使用-tt参数在每一行的行头上加上时间信息,到微秒级别。

另外一个示例就是使用strace –d
cate命令统计所有函数调用的次数及总时间占用,这个对于命令跟踪的分析统计非常有用

一个SQLPLUS连接慢的问题

接下来我们来看一个案例,这个案例是一个SQLPLUS连接慢的问题,AIX
7.1的操作系统,11.2.0.3
两节点RAC数据库,检查硬件的安装环境没有问题,重新配置环境变量也不能解决问题。

对于这种问题,我们首先要进行一些排查,排除一些可能性:

1、  我们看一下使用sqlplus/ as sysdba慢不慢,经过反馈,sqlplus / as
sysdba也慢,连接时间要5秒左右。

2、  远程连接慢不慢?

  1. 本地使用远程连接慢不慢  sqplus
    username/[email protected]
    澄清: 测试也慢,慢约5秒钟左右。

  2. 其它主机使用远程慢不慢?澄清:同样也慢, 慢约5秒钟左右。

以上判断表明这个连接慢并非一定和Listener有关,同时也可以排除网络问题引起的监听连接慢,所以先需要解决sqlplus
/ as sysdba 慢的问题,很大可能在ORACLE数据库的连接处理机制上面。

我们使用TRUSS命令去跟踪跟踪sqlplus / as
sysdba连接命令,发现不断出现sigpromask、_sigaction及thread_setmystate函数调用。

那这些函数代表什么?

之后对这些函数进行分析,其主要功能如下:

We see in that truss that main reason weare waiting is that the forked
thread is looping on some signal handlingmodification :

 They impact the way memory isconfigured (read/write protected, guard
pages…)

通过上述分析发现,连接的时候慢与内存页的分配有关,通过进一步检查内存参数发现,pre_page_sga设置为true。接下来通过测试可以重现这个问题,实际验证的确如此:设置为true,问题重现,设置为false,问题消失,并且发现这个参数为True的情况下,SGA内存越大连接变慢的越明显。

这种行为正常吗?

通过查询MOS文档Notes 289585.1,我们了解知这个行为是正常。

关注本公众号,回复:prelection,你可以找到本文的相关视频文档。

相关阅读:

DBA生存警示:系统存储级误删除案例及防范建议

故障诊断:DRM导致Oracle RAC节点Hang住

故障分析:数据库一致性关闭缓慢问题诊断

深入内核:监听器的工作原理与故障诊断分析

资源下载

关注公众号:数据和云(OraNews)回复关键字获取

‘2017DTC’,2017DTC大会PPT

‘DBALIFE’,“DBA的一天”海报

‘DBA04’,DBA手记4经典篇章电子书

‘RACV1’, RAC系列课程视频及ppt

‘122ARCH’,Oracle 12.2体系结构图

‘2017OOW’,Oracle OpenWorld资料

‘PRELECTION’,大讲堂讲师课程资料

在学习Python的道路上,我们应该如何走好这条路。,python走好

当你决定入门 Python
时,需要有一个清晰且短期内可实现的目标,比如通过学习找一份初级程序员工作,目标明确后,你需要知道企业对
Python 程序员的技能有哪些要求,下面是我从拉勾网找的一个初级 Python
工程师的任职要求:

  1. 熟悉 Python 及常用的 Web 开发框架;

  2. 至少熟悉一种数据库的使用,如MySQL、mongodb、redis等;

  3. 熟悉 Linux 操作系统及常用命令;

  4. 良好的编码习惯和文档编写习惯;

做 Python
开发除了熟悉语言本身之外,还需要掌握很多相关联的技能,好比打NBA,你不光要学如何投篮,还要练习力量、技战术等一整套东西。所以,一个普通
Python Web
开发工程师需要掌握的技能包括至少一个Web框架,比如:Django、Flask、Tornado,做业务系统必须熟知一种数据库,还需要对Linux系统的基本操作和常用命令有所了解,因为以后你写到程序基本上都会运行在Linux平台上。

另外Django在配置中很多地方使用字符串来代替模块的导入,那么它是如何把字符串对应到实际的模块上的呢?翻看源码,你就会发现,它使用了__import__内部方法。利用这个方法,我们也可以在自己的项目中用字符串来指定要导入的模块和类。

像这样的体悟是无穷无尽的,每一个框架都是一个学习的宝库,而你使用过的框架则是对你来说挖掘起来更容易的宝库。挖掘、体悟你最熟悉的框架,会让你的编码水平大幅提高。

发表评论

电子邮件地址不会被公开。 必填项已用*标注