轻盈小刀-LUA

突破C++的局限,让编程语言大同
随笔 - 13, 文章 - 1, 评论 - 13, 引用 - 0
数据加载中……

挖虫日记 11.15

先描述一下现象:
 环境:
       一个机房,均衡后带20台服务器,并发峰值大概在7万不到一点,平均下来一台服务器3000多并发
现象:
      20台服务器会随机出现应用服务器程序把cpu打满的情况,而正常情况下,3000并发的时候,应用服务器的cpu不超过10%,在cpu满的情况下程序基本上停止提供服务器,只有重启才能解决。
     开始的时候,20台服务器的程序一模一样,会随机有部分服务器出现情况。
     现在换了一半的服务器,测试新程序。

昨天通过系统自带的性能监视器,将占用cpu的线程找出来了。在这部分线程池的处理过程中,有循环的地方都加了数量判断,防止出现死循环。

今天问题仍然出现,新的老的程序上都出现过,出现的情况也不尽相同,有并发在1500左右,有3000左右。
没有出问题的并发都在3000上下,所以单纯说是并发造成的,可能不准确。最大的可能还是服务器遇到一个特殊的数据导致处理的错误,但是还有一点比较奇怪的是,有线程繁忙的时候,很快就会有该线程池中的其他线程也繁忙起来,难道异常数据出现的频率在这个点上如此之高??
今天下午的修改是:
   在单独的一个线程中来监视出现问题的线程池中的线程的状态,如果发现对单个请求的处理时间过长,那么记录下当前线程中的状态,希望能抓到究竟是什么情况下导致的问题?同时出现这种情况的时候,结束当前线程,重启一个线程放入线程池中,保证以下的工作正常处理。

   结果如何,明日再观察!

posted on 2008-01-15 17:50 绝对在乎你 阅读(421) 评论(0)  编辑 收藏 引用 所属分类: 心得


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理