Web站点崩溃的原因有哪些?(2)
发布时间:2012-02-25 19:44:03
线程死锁
由多线程带来的性能改善是以可靠性为代价的,主要是因为这样有可能产生线程死锁。线程死锁时,第一个线程等待第二个线程释放资源,而同时第二个线程又在等待第一个线程释放资源。我们来想像这样一种情形:在人行道上两个人迎面相遇,为了给对方让道,两人同时向一侧迈出一步,双方无法通过,又同时向另一侧迈出一步,这样还是无法通过。双方都以同样的迈步方式堵住了对方的去路。假设这种情况一直持续下去,这样就不难理解为何会发生死锁现象了。
解决死锁没有简单的方法,这是因为使线程产生这种问题是很具体的情况,而且往往有很高的负载。大多数软件测试产生不了足够多的负载,所以不可能暴露所有的线程错误。在每一种使用线程的语言中都存在线程死锁问题。由于使用Java进行线程编程比使用C容易,所以Java程序员中使用线程的人数更多,线程死锁也就越来越普遍了。可以在Java代码中增加同步关键字的使用,这样可以减少死锁,但这样做也会影响性能。如果负载过重,数据库内部也有可能发生死锁。
如果程序使用了永久锁,比如锁文件,而且程序结束时没有解除锁状态,则其他进程可能无法使用这种类型的锁,既不能上锁,也不能解除锁。这会进一步导致系统不能正常工作。这时必须手动地解锁。
服务器超载
NetscapeWeb服务器的每个连接都使用一个线程。NetscapeEnterpriseWeb服务器会在线程用完后挂起,而不为已存在的连接提供任何服务。如果有一种负载分布机制可以检测到服务器没有响应,则该服务器上的负载就可以分布到其它的Web服务器上,这可能会致使这些服务器一个接一个地用光所有的线程。这样一来,整个服务器组都会被挂起。操作系统级别可能还在不断地接收新的连接,而应用程序(Web服务器)却无法为这些连接提供服务。用户可以在浏览器状态行上看到connected(已连接)的提示消息,但这以后什么也不会发生。
解决问题的一种方法是将obj.conf参数RqThrottle的值设置为线程数目之下的某个数值,这样如果越过RqThrottle的值,就不会接收新的连接。那些不能连接的服务器将会停止工作,而连接上的服务器的响应速度则会变慢,但至少已连接的服务器不会被挂起。这时,文件描述符至少应当被设置为与线程的数目相同的数值,否则,文件描述符将成为一个瓶颈。
数据库中的临时表不够用
许多数据库的临时表(cursor)数目都是固定的,临时表即保留查询结果的内存区域。在临时表中的数据都被读取后,临时表便会被释放,但大量同时进行的查询可能耗尽数目固定的所有临时表。这时,其他的查询就需要列队等候,直到有临时表被释放时才能再继续运行。
这是一个不容易被程序员发觉的问题,但会在负载测试时显露出来。但可能对于数据库管理员(DataBaseAdministrator,DBA)来说,这个问题十分明显。
此外,还存在一些其他问题:设置的表空间不够用、序号限制太低,这些都会导致表溢出错误。这些问题表明了一个好的DBA对用于生产的数据库设置和性能进行定期检查的重要性。而且,大多数数据库厂商也提供了监控和建模工具以帮助解决这些问题。
另外,还有许多因素也极有可能导致Web站点无法工作。如:相关性、子网流量超载、糟糕的设备驱动程序、硬件故障、包括错误文件的通配符、无意间锁住了关键的表。
猜你喜欢
- 一旦你的网站跟这十大标准之中的几个挂上钩,就难逃经典特差网站的厄运,如果不幸以下这十条你的网站全都占了,那还是请离开站长圈,另谋出路比较好。
- 有Godaddy主机用户问如果在共享主机上新增了FTP用户,现在想删除的话,该如何操作呢?要想从你的共享主机上删除新增FTP用户,你可以轻松
- 这些天为了图床的事情弄得焦头烂额!后来在网上搜了一圈,发现其实可以自己搭建图床,这样就没有必要仰人鼻息了!我才想起我在godaddy注册了那
- 今天搜索了一下,看到几个帖子,感觉有必要写点感受,一起分享一下。也有一些兄弟,似乎 对图王的 赚钱理念颇有微词。其实也是正常的。我也常常发觉
- DEDECMS V5.3.1版这个版本的后台文档列表管理,在本机PHP环境测试速度是很快的,在电信的虚拟主机空间中,晚上速度是正常的,速度很
- 网店刚开张的时候,有多事情需要网店新手去做,可以说刚开始经营网店是很辛苦的,不过现在的辛苦是为了以后能很好的,轻松的管理好我们的店铺,下面说
- 决定一个网站排名高低有很多种因素,而友情链接就是其中较为重要的一条。目前互联网上友情链接交换的平台如雨后春笋,这足以见得友情链接对于一个站长
- 对于基于META标签检索的搜索引擎,在META标签中设置有效的关键词和网站描述,对于以网页内容相关性为主的蜘蛛型搜索引擎,则通过在网页中增加
- Ftp登陆不了是很经常碰到的事,很多人常常是不加分析就发贴询问。老实说,这样既浪费自己时间,又浪费别人精力,还常常不能得到满意的回答。因此每
- 打开:js/color_picker.js查找:color_picker_div.style.left = findPo
- 本文分步说明如何在Windows Server 2003 产品中为域名系统 (DNS) 配置Internet 访问。DNS是Internet
- 为了使各企业使用谷歌AdWords进行市场营销时能更加顺畅,编辑特制作了“谷歌网络营销点金术”系列专
- 一项调查显示,超过60%的网民对政府网站不满意,只有7%表示满意。这的确是个值得重视的信号。网民上政府网站,要么是查看信息,要么是反映情况,
- 很多新站长都在为自己的网站推广而头痛,寻求友情链接,提交网站目录,搜索引擎,忙乎了很久也不见什么效果。下面就我对自己的网站推广和公司网站推广
- 一、锚链接的使用链接是互联网网页之间连接的纽带,没有链接所有网页和网站之间都会是孤立的。什么是锚链接?在SEO这个领域里锚链接可
- 看到SEO现在搞得这么火,我只想说一句,这是炒作的内容,可以说SEO,又成了现在互联网上的一大畸形现象,就象当年的流氓软件一样,没有什么价值
- Godaddy主机用户怎样创建自己选择的新名字作为目录名的新目录呢?首先. 登陆你的Account Manager.第二. 在My Prod
- 首先,谈及企业网站优化排名优化相关的问题之前,我们要对中国企业网站现状进行大致的分析.现今很多企业都有了网站,大体分如下几类较多:1.个人制
- 开始写之前,我先提几个问题,希望大这思考一下:1. 什么是软文?2. 软文有什么用?3. 软文的重要性?4. 怎样写软文?5. 用软文来推广
- blog(部落格)Weblog网络日志(网志);从1993年NCSA和网景的“What’s New”栏目开始(博客网站的雏形),Blog诞生