TFS应用经验-大型项目数据仓库抽取导致的TFS应用无法访问
在超过千人使用的TFS生产环境中,每天周期性出现无法正常查看工作项白板、无法签入代码、无法进行自动化构建、无法进行报表数据的查看等情况,真是一个让人焦灼的问题。作为TFS平台支持和运维的团队,也想进了办法和方案尝试解决和减小这个问题产生的影响,经过几个月的尝试,最终还是协同微软产品技术支持中心的人,一起定位和尝试解决问题,最后把问题给解决了。
下面记录一些整个问题出现和解决的过程。
1, 出现问题的症状
问题症状大致有两大类:第一类为每天的固定时间段,在用WebPortal访问TFS程序时,浏览器一直处于加载的状态,光标或内容区的加载图片在没完没了的转圈,转那么几分钟,谁都受不了,研发的群里就炸了锅了,TFS挂掉的信息就大量抛出来了。第二类为页面出去Http500错误,页面上打出AnalysisServer无法连接等字样,其他什么都干不了了。
2, 临时处理方案
针对第一类问题,运维人员必须马上重启部署TFS的IIS应用程序,重启后程序恢复正常使用。

针对第二类问题,我们开发了一个程序,周期性访问TFS门户,遇到Http 500状态,程序自动重启TFSJobAgent服务,并将信息发送到邮件和微信。

通过上述方式,维护团队成员整体提心吊胆的过着日子,时刻要关注着邮件等,并每天定点把服务进行手工重启,以免最小频率的把问题暴露给用户。
3, 最终问题的排查和解决
上述方法总不是长久之计,在实在是无法解决的情况小,协调微软的技术支持开了一个紧急的Case支持。把各种系统日志、IIS日志、DB日志、TFS日志发过去,通过系统的分析,最终歪打正着地把让上述问题不在周期性的重现了。
解决问题的最终方法是调整TFS后台分析数据库的运行频率即可。修改方法如下:
打开参数设置WebService

修改更新分析服务频率参数

查看结果

通过设置,经过一段时间观察,TFS服务运行正常了,困扰了我们几个时间,耗费大量时间的问题得以解决。
最后来一个总结,通过这次在真实环境中使用SQl Server的Analysis Service,数据仓库到Cube中的增量处理,在大数据量的情况下,特别是维度中有较多层级关系结构的,在进行增量更新时,一定要给增量处理预留足够的时间。还有就是对于集成应用该产品的TFS或者其他产品,在支持大数据量业务的环境中,一定要考虑这个问题。要不面对这个问题时,真的可能是要浪费很多的时间和精力,走许多的弯路。
TFS应用经验-大型项目数据仓库抽取导致的TFS应用无法访问的更多相关文章
- PHP开发大型项目的一点经验
一.变量 最好是把所有的变量存储在一个数组中,这样在程序的开发中可以带来很多的方便,特别是当程序很大的时候.变量的命名就当适合自己的习惯,不管是用拼音还是英语,至少应当有一定的意义,以便适合记忆.变量 ...
- Spark大型项目实战:电商用户行为分析大数据平台
本项目主要讲解了一套应用于互联网电商企业中,使用Java.Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.页面跳转行为.购物行为.广告点击行为等)进行复杂的分析.用统计分 ...
- 在大型项目上,Python 是个烂语言吗
Robert Love, Google Software Engineer and Manager on Web Search. Upvoted by Kah Seng Tay, I was the ...
- 废弃fastjson!大型项目迁移Gson保姆级攻略
前言 大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀. 在被大家取关之前,我立下一个"远大的理想",一定要在这周更新文章.现在看来,flag有用了... 本篇文章是我这一个多月 ...
- C/C++大型项目错误管理
在C/C++大型项目中,错误管理在项目中起着举足轻重的作用,以我自己的项目经验以及观摩其它项目,错误管理对项目框架以及开发效率有着非常大的影响.对于错误管理的认识大致分为三类: 刚刚開始敲代码的新手, ...
- ABP大型项目实战(2) - 调试与排错 - 日志 - 查看审计日志
这是<ABP大型项目实战>系列文章的一篇. 项目发布到生产环境后难免会有错误. 那么如何进行调试和排错呢? 我看到俱乐部里有人是直接登陆生产服务器把数据库下载到开发机器进行调试排错 ...
- 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
书中第六章 隔离. 主要在撰述什么须要定义在头文件?什么应当移到编译单元中? 核心仍然是先区分接口定义与实现细节.实现细节的改变会导致客户代码的又一次编译,从逻辑上也表示与客户代码间可能存在着强耦合. ...
- 8、大型项目的接口自动化实践记录----DB分别获取预期结果、实际结果
上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下D ...
- 一步步从零开始用 webpack 搭建一个大型项目
开篇 很多人都或多或少使用过 webpack,但是很少有人能够系统的学习 webpack 配置,遇到错误的时候就会一脸懵,不知道从哪查起?性能优化时也不知道能做什么,网上的优化教程是不是符合自己的项目 ...
随机推荐
- iOS开发——浅谈构架与用户体验
工作不是千篇一律的重复,从中寻找乐趣才是我们应该做的. 作为一名码农,做过几个项目,每次做项目的时候都会自己构思,如果完全是我自己设计,会怎么去设计?心里一直没有满意的答案,不管怎么布局,好像都感觉差 ...
- 菊花加载第三方--MBprogressHUD 分类: ios技术 2015-02-05 19:21 120人阅读 评论(0) 收藏
上次说到了网络请求AFN,那么我们在网络请求的时候,等待期间,为了让用户不认为是卡死或程序出错,一般都会放一个菊花加载,系统有一个菊花加载类叫UIProgressHUD.但是我今天要说的是一个替代它的 ...
- List学习笔记
List 特点:1.有序.2.可重复. ArrayList: 底层是数组,数组是有下标的. 会自动扩容,底层默认初始化容量是10,扩大之后的容量预设是原来容量的一半(jdk 1.8).以前好像是原容量 ...
- C++类的存储(部分可用与c的结构体)
c++中最重要的就是类,那么给你一个类的对象,你知道它在内存中如何存储的吗?它占内存中多少个字节? 首先确定类的构成: 1,数据成员:可以是内置类型,类类型. 2,函数成员:虚函数,非虚函数 1)数据 ...
- CentOS根分区占满
我中奖了!!! 查看硬盘的使用情况(bjchenxu)df -k 以K为单位显示df -h 以人性化单位显示,可以是b,k,m,g,t.. 查看各目录占用大小 du -sh * du -ms /*
- java域名解析
DNS原理:http://amon.org/dns-introduction.html 根域:就是所谓的“.” 根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技 ...
- Linux_System11
1.查看/var目录的大小:1)ll -hd /var 查看目录的实际大小2)du -sh /var 查看目录所占磁盘空间大小修改权限:chmod 750 hunan修改属主和属组:groupadd ...
- linux 5个查找命令
1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...
- mark笔记
1.[cocos2dx]ccnode跟ccui节点混用时注意touch层级问题,基本不可控
- SQL迅速增加表中记录语句
很多时候我么需要为表中疯狂增加N条记录,那么我们该使用什么语句实现该功能呢?如下: insert into 表名(字段1,字段2,字段3....) select 字段1,字段2,字段3.... fr ...