作者:我在听风想你

大家好,这次给大家带来的问题解决方法,还是在实战中研究出来的,非常实用,下面我们不说废话,直接上干货。

我们在客户现场遇到的问题是这样的(由于安全原因,未能截图,请谅解),客户会定期会针对DB与PROXY进行扩容,为产出更多的实例供应用系统使用(DB与Proxy扩容步骤将会在最后也发给大家),但是在每次扩容完成后创建实例的时候,都会卡在70%左右不动。一般来说一个实例的正常创建时间在几分钟左右,但是70%一卡就是十几二十分钟,甚至二三十分钟都不会更进一步,我们也只能在到达一定时间之后,点击删除任务,再次尝试。 这个问题一到我这里,我首先就会想创建实例的流程。在上一期的文章中也有提到,实例的创建是赤免运营平台以jason格式通过http形式传参给OSS API,OSS调用创建实例的函数,然后在zookeeper创建job,通知manager(包括scheduler和manager)创建实例,manager在创建实例前要检查资源是否够,并且lock 资源后再创建资源。各位手中如果有环境资源的话可以去尝试一下,在赤兔平台的实例创建流程到达70%那一块时,已经lock住资源开始创建了,也可以去查看一下安装实例的日志:

#cd /data/home/tdsql/tdsqlinstall/log/

#vim pkginstall.log.开头日志

#vim shell_pkginstall开头日志

查看error记录或者看相应时间的记录,可以看出问题出在scheduler机器上,这个工作到了scheduler后便没有该有的记录了,于是再去看看scheduler的日志,发现日志非常多,几乎每个小时都会产生一个sys_scheduler开头的日志,大小不会超过955MB,然后看一下创建时间覆盖我们创建实例的时间段的日志,正好是最后一个,大小还未达到955MB,我便猜测可能是磁盘满了这个时间段的日志写不进去了。接着看一下磁盘的使用情况,发现已经达到了100%,于是清理一下时间比较久的日志,腾出一些空间来。返回赤兔平台删除卡住的任务重新创建,该问题解决。

schedur日志增长逻辑:在赤兔操作较频繁情况下,/目录磁盘使用会达到100%,导致实例创建Hang住。当前/data/scheduler_log/sys_scheduler日志增长量与增长频率为每天增加26G左右,每天日志将占磁盘容量近30%。

日志增长逻辑:大致按每1小时递增一个sys_scheduler文件,每个大小不会超过1G,当到达954MB左右时,将会自动生成新sys_scheduler文件,后缀从‘当前日期.0’开始递增,步长为1。当天上限一般不会超过30G。

网关组扩容:

在主控机上添加newproxy.yml脚本

到tdsql_install/playbooks目录下

# vim newproxy.yml

添加如下内容:

- name: install newproxy beginning

hosts: newproxy

remote_user: root

gather_facts: false

roles:

- tdsql_beginning

- name: install proxy_module server

hosts: newproxy

remote_user: root

gather_facts: false

roles:

- tdsql_db_module

(1)修改tdsql_hosts文件内容

在ansible路径下的tdsql_hosts文件中添加类似如下内容

[newproxy]

newproxy1 ansible_ssh_host=1.1.1.1 <------------这里就写要添加的新的proxy机器的ip地址

newproxy2 ansible_ssh_host=2.2.2.2          <------------这里就写要添加的新的proxy机器的ip地址

(2)后台安装proxy

执行前确保新增的proxy机器的时间和集群中其它机器的时间同步和ansible机器到目标的免密登录

执行安装新proxy

# ansible-playbook -i tdsql_hosts playbooks/newproxy.yml

(3)前台上报proxy机器和网关组扩容

前台上报新增proxy机器

前台网关组扩容

扩容成功后验证:

后台验证 新增proxy机器上执行 # ps –ef|grep proxy

DB资源扩容:

(1)修改newdb.yml文件内容

在ansible的路径下有一个newdb.yml文件

# cat tdsql_newdb.yml

- name: install db beginning <--------这一块是初始化机器

hosts: tdsql_newdb

remote_user: root

gather_facts: false

roles:

- tdsql_beginning

- name: install db_module server <--------这一块是推db包到机器上

hosts: tdsql_newdb

remote_user: root

gather_facts: false

roles:

- tdsql_db_module

- name: install hdfs_single on db <--------这一块是安装单点hdfs的客户端(2选1)

hosts: tdsql_newdb

remote_user: root

gather_facts: false

roles:

- hdfs_on_db_single

- name: install hdfs on db <--------这一块是安装高可用hdfs的客户端(2选1)

hosts: tdsql_newdb

remote_user: root

gather_facts: false

roles:

- tdsql_hdfs_on_db

根据实际的情况,如果没有部署hdfs的话,就删掉第3和第4块内容

如果部署的是hdfs单点架构的话,就删掉第4块内容

如果部署的是hdfs高可用架构的话,就删掉第3块内容

(2)修改tdsql_hosts文件内容

在ansible路径下的tdsql_hosts文件中添加类似如下内容

[tdsql_newdb]

tdsql_newdb1 ansible_ssh_host=1.1.1.1 <------------这里就写要添加的新的db机器的ip地址

tdsql_newdb2 ansible_ssh_host=2.2.2.2

tdsql_newdb3 ansible_ssh_host=3.3.3.3

(3)后台安装db

执行前确保新增的db机器的时间和集群中其它机器的时间同步

执行安装新db

ansible-playbook -i tdsql_hosts playbooks/tdsql_newdb.yml

(4)前台上报db机器资源

TDSQL赤兔运营平台创建实例卡死不动问题分析解决相关推荐

  1. PySide2 基础入门-创建实例窗口(详细解释)

    PySide2 基础入门-创建实例窗口(详细解释) python 3.7 / Pyside2 (如果使用pyQt5,将Pyside2 直接替换PyQt5即可)首先我们在Qt Designer中画好界面 ...

  2. 自己挖的坑自己填--docker创建实例出现Waiting for SSH to be available…

    在之前使用Docker for Windows Installer.exe直接安装,通过docker-machine-driver-vmwareworkstation.exe实现docker和VM的共 ...

  3. 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )

    文章目录 I . 主构造函数 II . 主构造函数声明属性 III . init 初始化代码块 IV . 主构造函数参数 和 成员变量访问方式 V . 主构造函数 可见性 设置 VI . 次构造函数 ...

  4. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  5. Oracle 11g中创建实例

    1.打开"所有程序" -> "Oracle -OraDb11g_home1" -> "配置移植工具" -> "D ...

  6. linux oracle新建监听,linux 下 oracle图形界面(需配置监听,创建实例)

    摘要:oracle 图形界面配置监听,创建实例,以下都是我安装是的截图,按步骤一定可以安装成功! CentOS6.7_x64_minimal_desktop的虚拟机一台(安装oracle需要图形界面, ...

  7. rails4 ajax 例子,Ajax和Rails 4:创建实例变量并更新视图而不刷新

    我有一个部分的coaching_notes索引和一个用于创建备注的表单.我想创建一个教练笔记,并进行部分更新而不刷新页面.我收到一个未知动作错误:CoachingNotesController无法找到 ...

  8. 阿里云ECS开放批量创建实例接口,实现弹性资源的创建

    摘要: 为了更方便的实现弹性的资源创建,方便用户一次运行多台ECS按量实例来完成应用的开发和部署,阿里云开放了ECS的批量创建实例接口RunInstances,可以单次最多创建100台实例,避免重复调 ...

  9. ECS开放批量创建实例接口RunInstances

    摘要: 为了更方便的实现弹性的资源创建,方便您一次运行多台ECS按量实例来完成应用的开发和部署,我们开放了ECS的批量创建实例接口RunInstances.和目前的CreateInstance相比,R ...

最新文章

  1. C语言 | 编程实现3
  2. java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?
  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
  4. 面试突击32:为什么创建线程池一定要用ThreadPoolExecutor?
  5. 听说,那谁谁谁是同性恋?
  6. 在周二正式发售前 新款MacBook Pro已开始向客户发货
  7. java操作浏览器_java selenium 操作浏览器实例
  8. deepin安装windows虚拟机_Deepin Linux V20系统通过安装wine实现运行windows程序
  9. 请慎重你的选择,到底想要的是什么:一次误检的经历
  10. 统计通话次数和时间的软件_通话时间统计app下载-通话时间统计下载 2.2.2 安卓版 - 河东软件园...
  11. 丹尼尔·惠灵顿(Daniel Wellington)选择一洽的理由
  12. 阿里开源互动游戏引擎Eva.js
  13. android svg 线条动画教程,SVG技术入门:线条动画实现原理
  14. css中“~”(波浪号)、“,”(逗号)、 “ + ”(加号)和 “ ”(大于号)是什么意思?
  15. 怎么彻底删除users下的文件夹_什么工具可以有效清理C:\Users\用户名\AppData目录下的文件?...
  16. STM32F4 IAP实现总结
  17. android 白色圆点,Android通知图标是一个白色圆圈
  18. C++:重定义:符号重定义:变量重定义(二):解决变量重定义(const static)
  19. 51单片机实战教程之C语言基础(五 C语言函数及其定义)
  20. 利用Windows 计划任务定时将本地文件复制到共享文件夹

热门文章

  1. 航天信息:夯实电子凭据建设 打造社会化智慧财税生态
  2. Artisteer2--《全自动傻瓜式网站模板制作软件》
  3. 【宇麦科技】数据呈现爆发式增长,企业需要怎样的群晖存储解决方案?
  4. RTX临界段,中断锁与任务锁
  5. WiFi6 MTK方案初试
  6. jQuery 分页器
  7. WCG 2019年7月将在中国西安举办
  8. 基于WEB的英语四级在线考试系统
  9. 腾讯云服务器远程连接登陆的方法
  10. PHP上传大型视频文件到服务器,解决方案