救命问题:CPU双核和应用程序频繁死机,高分急求!(200分)

  • 主题发起人 主题发起人 snowspace1981
  • 开始时间 开始时间
S

snowspace1981

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,小弟实在有个事情比较棘手,希望能尽量提供点信息给我去解决问题:<br>基本情况:<br>&nbsp; &nbsp;我们的应用软件是三层结构。前台和中间件是用delphi开发的,并且中间件是用COM+的方式进行通讯的。数据库用的是sql server 2000.<br>服务器两台,一台是HP双核1.86 的 ,放 sql server 2000,另一台是 IBM 2.3的,放中间件。<br>问题:<br>&nbsp; &nbsp;我们的客户端软件经常会出现死机的情况,错误现场不固定,而且随时可能发生,频率比较高,操作中,30分钟之内,就可顶会出现一次。但是其他软家,包括用友的财务软件都不会出现类似的情况。<br>我们把双核关掉了,软件就正常了,不会出现死机的情况,但是服务器运行的速度就会慢下来。<br>&nbsp; &nbsp;同样的问题,我们在超线程服务器上也碰到过。<br><br>现在我们很困惑的是:<br>1。问题到底出在哪里?是服务器呢,还是sql server 2000,还是我们的软件中件件,还是客户端?<br>2。在BOIS上关闭双核,是不是意味着处理能力就只有原来的一半了?<br>3。COM+的通讯方式到底和是否双核有没有关系?向上面描述的那样,如果COM+开发的中间件是放在另一台单核的电脑上的,那是不是意味着,和中间件没关系呢?<br>4。sql server 2000 和 CPU 是否双核有关系么?<br><br>希望大家能提供进可以有用的信息,帮助我排除问题,几万的单子啊,如果因为这个问题耽搁了,那可麻烦大了。我这里跪求各位了。<br>你能帮我解决问题,就是帮我天大的忙了。
 
是客户端死机还是你们的中间层死机?<br>操作系统对双核的支持应该没问题,记得D7的scktsrvr这个服务在双核上好象有问题,弄个D2007的试试
 
COM+做多层应该注意:<br>1.中间层应该是无状态的.<br>2.使用数据库连接池。在连接池中使用临界区和信号量来让客户端取得连接.<br>3.你们的数据库连接池用正确了吗?就是说你在pooling的是什么??<br><br>&nbsp; &nbsp;如果你们能保证上述3条正确的话,100~200个客户端也不会出问题。
 
轻舞肥羊,<br>是客户端死机,另外,我们也是用scktsrvr这个服务的,是开在中间件的那台电脑上的,那台电脑是单核的。双核的那台电脑是装数据库的。
 
gencheng,<br>非常感谢你给的建议,不过我们的中间层起到的作用只是做一下数据包的传递,基本没处理什么东西。而且中间层的电脑是单核的,这个可以说明,不是中间层的问题么?
 
双核的电脑,有时候的稳定性是不如单核的
 
我上次也遇到死机的问题<br>最后发现是在解包出的问题,然后处理好了,费了很大的劲,<br><br>检查你的解包方法,是不是出在与数据库的交互上.
 
客户端死机也有可能是服务器造成的,比如说服务器一直没有响应,造成客户端一直等在那里<br>双核引起的死机,一般是由于多线程的调度方面的问题。比如说,N个线程同时操作一个对象,导致死锁<br>仔细检查检查吧
 
“中间层的电脑是单核的,这个可以说明,不是中间层的问题么?”<br> 这个不能肯定中间层没问题,它们没有因果关系。我说的3条经验指的是真正的用COM+做中间层经验,scktsrvr的情况并不适合。
 
gencheng,<br>我们的中间层其实是没做什么事的。都是简单的数据打包传递的作用。所以不知道该怎么分析。如果你愿意的话,能否单独和我联系一下。我希望能和你做深入的沟通。<br>我的qq:20697122 油箱 20697122@qq.com <br>msn:snowspace1981@hotmail.com<br><br>非常感谢。
 
目前为公司做项目很忙啊,恐怕没有多少时间帮你.很抱歉.<br><br>&nbsp; 我的qq:392411198 &nbsp; 请注明是大富翁网友或Delphi爱好者!
 
其实这与双核的关系不大,我记得单核也会出现这种现象。所谓的客户端假死,主要是因为你用了scktsrvr.exe,而且你很可能是从服务器取得数据后就断开与应用服务器的连接。如果是这样,那你改一下客户端就可以了(当时这个问题困扰了我半年)。你把客户端的sock控件的回调机制设置为False(默认是True)试试。另外,我有个问题,想问一下,你断开与服务器的连接后,服务器能发挥数据分页的功能吗?比如,我要取一张表的记录,估计有10000条,但是,我每次只返回给客户端100条,如果用你的方法,你是一次把所有的数据都返给客户端还是想我这样每次只返回一部分、如果用我的方式,在你断开服务器后,再取数据就取不全了.
 
可以肯定的说<br>可双核没有任何关系。<br>如果双核不稳定,那么先死的是操作系统不是你的中间层。<br>还是从程序本身找找原因,<br>如果半个小时就死一次,那么你最好用打log的方式看看程序走到哪里了。
 
内存问题??<br>我猜的,我就遇到了,使用 双核 双通道内存,使用 PICCHECK 校 CSV 相同的 文件。<br>关闭 杀毒软件。<br>内存条A,A插槽,内存条B,B插槽,出现不固定的 CRC 异常。<br>内存条A,A插槽,内存条B 不插,正常。<br>内存条B,A插槽,内存条A 不插,正常。<br>内存条A,B插槽,内存条B,A插槽,现在正常了,天知道什么软件又会出错。<br><br>在测试中,感觉双通道就是比单通道要快,贼快贼快的。<br><br>=====================================<br><br>只是一个侧面的,试试换换内存,换换CPU看看。
 
非常感谢楼上的各位,非常感谢<br>现在又有新情况了。<br>我们另一个客户,用的是四核的,也是在保存的时候频繁死机/<br>我尝试着用各种方法去试。结果是这样:<br>我换了一个操作系统,换成xp就不死了。<br>换成 windows 2003也不会死,就是在 2000的系统下会死机<br>版本是 2000 server .这个到底应该怎么解释呢?
 
那就换2003,先让系统运转起来。
 
我觉得:<br><br>  1、CPU是哪家的?补丁打全没有??<br><br>  2、Windows 2000 sp4打了没有???
 
路过....学习...
 
后退
顶部