腾讯蓝鲸论坛-专业的技术交流论坛

 找回密码
 立即注册
忘了密码?
搜索
热搜: 用户手册 FAQ
查看: 2154|回复: 2

[会议活动] 首发!GOPS2016上海站·海量运维技能挑战赛题目解析

 关闭 [复制链接]

36

主题

0

好友

1775

积分

管理员

Rank: 48Rank: 48Rank: 48

发表于 2016-10-8 21:53:29 |显示全部楼层
9月23日GOPS2016上海站 ·海量运维技能挑战赛刚结束不久,作为学霸的你,是否还在回味当时的题目呢?小编特意奉上原题与解析思路,仅供参考。
Q1 故800分
从所有logsvr模块(5000台)服务器上对应的/data/logsvr/error*.log中找出"IO operation failed" 的行,再将对应的第四个字段值求和,并找出求和值大于1024的服务器数量。
评分要求:成功完成即可得800分。
目的: 考察shell的基本运用
考点:
     1.  需要对文件情况进行基本判断
     2.  熟练运用shell下的各种命令功能
     3. 对awk有一定程度的了解及应用     4. 跨区域海量服务器管理能力解题思路:      1. 必须对目录是否存在,文件是否存在进行判断,避免执行错误
      2. 采用逐步求精的方法,先获得文件,然后获得关键字行,继而获得指定列并累加,最后判断是否累加大于1024

Q2 发  500+300
从上海区域的堡垒机,分发923MB的/data/datasvr_v1.tar.gz文件到广州datasvr(200台)和北美区域datasvr(200台)模块服务器的“/data/”目录下。
评分要求:如果完成对广州datasvr模块的分发,即可得500分,如果额外完成对北美区域datasvr模块下的服务器分发,再加300分。

目的:模拟大文件快速分发的场景
考点:
     大文件,海量服务器批量分发的能力
解题思路:
     通过类BT工具快速分发到各个业务服务器上

Q3 服500分
广州区域logicsvr模块下一共有1750台服务器,目前已经有500台服务器运行了logicsvr进程,现由于用户访问量剧增,需要完成logicsvr模块下剩余的1250台服务器的扩容。
扩容方法:修改/data/logicsvr/logicsvr.conf中的listen_addr配置为本机的内网ip,如listen_addr=192.168.1.100,然后再执行命令“/data/logicsvr/logicsvr”启动进程。
评分要求:所有服务器上的进程正常运行,即可得500分。
目的:模拟服务快速扩容的场景
考点:
    1. 不依赖配置系统的情况下在海量服务器列表中快速确定某服务的iplist
    2. 批量分发、布署的能力
    3. 文本编辑工具的应用能力
解题思路:
    1. 通过类Ansible工具扫描全网,确定已布署了logicsvr和未布署logicsvr的iplist
   2. 从已布置的iplist提取出1个ip, 清理无效文件后(主要是日志)制作布署包
    3. 通过Ansible等批量工具下发到未布署的iplist,拉起服务
    4. 检查、确认布署结果,对失败的重做

Q4 在线600+600分
现需要采集广州、上海、北美3个区域onlinesvr模块(每个区域100台)的在线人数,记录在线人数的文件为:“/data/onlinesvr/online_svr.log”(文件内容为动态追加写入的数据),内容的格式为:时间戳,在线人数,如:1472193068,184。
答题要求:请分别将3个区域的在线人数按照对应的时间戳进行汇总,并将汇总后的数据追加写入到该区域堡垒机的文件:“/data/onlinesvr/online_sum”
评分要求:每个区域数据汇总正确即可得200分,三个区域正确可得600分,如使用实时汇总方案该区域再加200分。
目的:模拟在线监控的场景
考点:
    1. 大量机器上获取数据的能力
    2. 数据统计的能力
    3. 实时数据采集、上报和汇总的能力
解题思路:
    1. 非实时:从所有onlinesvr模块的机器上拉取指定的文件到对应的堡垒机,再按时间戳汇总统计后追加输出到指定的文件
    2. 实时:在所有onlinesvr模块的机器上部署实时获取数据的脚本,实时上报到堡垒机的服务端,服务端实时汇总数据后追加写入到指定的文件

Q5 进800分
某业务在广州、上海、北美3个区域新上线了loginsvr模块(每个区域10台),程序部署在/data/loginsvr/目录下,进程名为“login_svr”,比赛开始20-25分钟期间此进程会不定期被kill,故需要将login_svr监控起来,/data/loginsvr/start_loginsvr.sh是启动login_svr进程的脚本。
评分要求:需计算出有多少台服务器被kill过,一共被kill过多少次,而且最终进程需是正常运行状态,答案正确即得800分。

考点:
    1. 编写监控进程脚本能力
    2. 简单跨区域汇总结果能力
解题思路:
     1. 编写进程监控脚本,检测到进程不存在,执行启动脚本将其拉起,并记录拉起时间做标记
    2. 批量分发到logsvr模块服务器,部署crontab,最小粒度监控周期
     3. 用批量工具(Ansible)获取每台机器上监控脚本日志,日志不为空的服务器即为被kill的服务器数,同理,日志行数汇总后即可知道该模块下的进程共被拉起多少次


0

主题

0

好友

10

积分

预备会员

Rank: 1

发表于 2016-10-9 17:35:55 |显示全部楼层
  看题都蒙逼了

0

主题

0

好友

4

积分

预备会员

Rank: 1

发表于 2016-11-22 16:07:24 |显示全部楼层
提示: 该帖被管理员或版主屏蔽
您需要登录后才可以回帖 登录 | 立即注册

蓝鲸官网

GMT+8, 2018-1-16 23:04

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部