磁盘已满

导致系统无法正常运行的最可能的原因是磁盘已满。一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带)。

日志文件会很快用光所有的磁盘空间。Web服务器的日志文件、SQL*Net的日志文件、JDBC日志文件,以及应用程序服务器日志文件均与内存泄漏有同等的危害。可以采取措施将日志文件保存在与操作系统不同的文件系统中。日志文件系统空间已满时Web服务器也会被挂起,但机器自身被挂起的几率已大大减低。

C指针错误

用C或C++编写的程序,如Web服务器API模块,有可能导致系统的崩溃,因为只要间接引用指针(即,访问指向的内存)中出现一个错误,就会导致操作系统终止所有程序。另外,使用了糟糕的C指针的Java模拟量(analog)将访问一个空的对象引用。Java中的空引用通常不会导致立刻退出JVM,但是前提是程序员能够使用异常处理方法恰当地处理错误。在这方面,Java无需过多的关注,但使用 Java对可靠性进行额外的度量则会对性能产生一些负面影响。

内存泄漏

C/C++程序还可能产生另一个指针问题:丢失对已分配内存的引用。当内存是在子程序中被分配时,通常会出现这种问题,其结果是程序从子程序中返回时不会释放内存。如此一来,对已分配的内存的引用就会丢失,只要操作系统还在运行中,则进程就会一直使用该内存。这样的结果是,曾占用更多的内存的程序会降低系统性能,直到机器完全停止工作,才会完全清空内存。

解决方案之一是使用代码分析工具(如Purify)对代码进行仔细分析,以找出可能出现的泄漏问题。但这种方法无法找到由其他原因引起的库中的泄漏,因为库的源代码是不可用的。另一种方法是每隔一段时间,就清除并重启进程。Apache的Web服务器就会因这个原因创建和清除子进程。

虽然Java本身并无指针,但总的说来,与C程序相比, Java程序使用内存的情况更加糟糕。在Java中,对象被频繁创建,而直到所有到对象的引用都消失时,垃圾回收程序才会释放内存。即使运行了垃圾回收程序,也只会将内存还给虚拟机VM,而不是还给操作系统。结果是:Java程序会用光给它们的所有堆,从不释放。由于要保存实时(Just In Time,JIT)编译器产生的代码,Java程序的大小有时可能会膨胀为最大堆的数倍之巨。

还有一个问题,情况与此类似。从连接池分配一个数据库连接,而无法将已分配的连接还回给连接池。一些连接池有活动计时器,在维持一段时间的静止状态之后,计时器会释放掉数据库连接,但这不足以缓解糟糕的代码快速泄漏数据库连接所造成的资源浪费。

进程缺乏文件描述符

如果已为一台Web服务器或其他关键进程分配了文件描述符,但它却需要更多的文件描述符,则服务器或进程会被挂起或报错,直至得到了所需的文件描述符为止。文件描述符用来保持对开放文件和开放套接字的跟踪记录,开放文件和开放套接字是Web服务器很关键的组成部分,其任务是将文件复制到网络连接。默认时,大多数shell有64个文件描述符,这意味着每个从shell启动的进程可以同时打开64个文件和网络连接。大多数shell都有一个内嵌的 ulimit命令可以增加文件描述符的数目。

线程死锁

由多线程带来的性能改善是以可靠性为代价的,主要是因为这样有可能产生线程死锁。线程死锁时,第一个线程等待第二个线程释放资源,而同时第二个线程又在等待第一个线程释放资源。我们来想像这样一种情形:在人行道上两个人迎面相遇,为了给对方让道,两人同时向一侧迈出一步,双方无法通过,又同时向另一侧迈出一步,这样还是无法通过。双方都以同样的迈步方式堵住了对方的去路。假设这种情况一直持续下去,这样就不难理解为何会发生死锁现象了。

解决死锁没有简单的方法,这是因为使线程产生这种问题是很具体的情况,而且往往有很高的负载。大多数软件测试产生不了足够多的负载,所以不可能暴露所有的线程错误。在每一种使用线程的语言中都存在线程死锁问题。由于使用Java进行线程编程比使用C容易,所以 Java程序员中使用线程的人数更多,线程死锁也就越来越普遍了。可以在Java代码中增加同步关键字的使用,这样可以减少死锁,但这样做也会影响性能。如果负载过重,数据库内部也有可能发生死锁。

如果程序使用了永久锁,比如锁文件,而且程序结束时没有解除锁状态,则其他进程可能无法使用这种类型的锁,既不能上锁,也不能解除锁。这会进一步导致系统不能正常工作。这时必须手动地解锁。

21/212>

网页崩溃原因软件测试,让Web站点崩溃最常见的七大原因相关推荐

  1. 让Web站点崩溃最常见的七大原因

    让Web站点崩溃最常见的七大原因 磁盘已满 导致系统无法正常运行的最可能的原因是磁盘已满.一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁 ...

  2. web服务启动后mysql崩溃_让Web站点崩溃最常见的七大原因

    转载自: 1. 磁盘已满导致系统无法正常运行的最可能的原因是磁盘已满.一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带). 日志文件会很 ...

  3. 网页崩溃原因软件测试,Web网站为什么会崩溃 - Web自动化测试 - 松勤网 - 松勤软件测试-软件测试在线教育领跑者-国内最专业的软件测试学习平台...

    在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据软件测试在线学习课程里面的讲解总结如下: 1. ...

  4. 服务器崩溃,主要都有哪些原因又怎么解决服务器崩溃。

    互联网行业日益发展,对服务器的要求也越来越高.很多服务器都面临卡顿.迟缓,甚至还有很多服务器出现崩溃宕机的情况.服务器崩溃宕机会给我们的网站带来很多问题,甚至导致源站无法访问,相信很多人都有遇到过这样 ...

  5. 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...

    点这里 阅读目录 用 AngularJS(以及其它 JavaScript 框架)开发的 Web 站点不支持爬虫的抓取 解决方案 为什么公开我们的解决方案 实现 AngularJS 服务 结论   Pr ...

  6. 提高 Web 站点性能的最佳实践

    原文地址:http://developer.yahoo.com/performance/rules.html 本文在尊重原文基础上,尽量翻译得通俗易懂一些. 本文内容 提高 Web 站点性能的最佳实践 ...

  7. 【软件测试大赛Web应用省赛】跳坑记录

    [软件测试大赛Web应用省赛]跳坑记录 本文写在预赛通过的基础上,默认后来者已经接触过web应用测试,并有一定的基础知识. 本文写于2020.11.8省赛结束,希望这些坑以后不会再有人跳进去. [前排 ...

  8. web站点服务器日志管理及分析

    管理Web网站不只是监视Web的速度和Web的内容传送.它不仅要关注服务器每天的吞吐量,还要了解这些Web网站的外来访问,了解网站各页面的访问情况.根据各页面的点击频率来改善网页的内容和质量,提高内容 ...

  9. 网络云存储技术Windows server 2012 (项目二十 基于NLB的企业Web站点服务部署)

    网络云存储技术Windows server 2012 (项目二十 基于NLB的企业Web站点服务部署) 前言 网络存储技术,是以互联网为载体实现数据的传输与存储,它采用面向网络的存储体系结构,使数据处 ...

  10. html页面的内容外观显示样式,XHTML CSS制作样式风格切换的WEB站点

    XHTML CSS制作样式风格切换的WEB站点 互联网   发布时间:2008-10-17 19:26:50   作者:佚名   我要评论 随着XHTML的逐渐推广流行,HTML在许多场合已经显得过时 ...

最新文章

  1. mongodb全套配置
  2. LightGBM用法速查表
  3. 李开复:AI能在15年内取代40%~50%岗位
  4. beta分布的采样或抽样(java程序)
  5. 为什么都瞧不起QQ邮箱?
  6. 阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路 | 问底中国 IT 技术演变...
  7. 建模步骤_带你十个步骤学建模(二)
  8. 微软MIX10开幕 支持在线观看
  9. c语言常用代码-1:
  10. html中if判断鼠标,怎样在网页里面检测鼠标
  11. html图片自动跳转,点击图片跳转链接(html点击图片跳转链接)
  12. 大话USB驱动之基础概念
  13. 回波损耗、反射系数、电压驻波比以及S参数的物理意义
  14. 图灵工业机器人说明书_从2020世界人工智能大会,看工业机器人领域领军企业布局...
  15. elasticsearch 版本区别
  16. 成功之路散文连载之名师出高徒
  17. windows打开iis7服务器远程桌面管理器
  18. react实现路由跳转拦截功能(导航守卫)
  19. 参考文献格式详细解释和引用(常见)
  20. go语言操作mongoDB之mgo

热门文章

  1. java发布geoserver样式(sld样式)
  2. C++-求积分(面积)
  3. dnf服务器老是连接中断,《dnf》老是网络连接中断怎么办 网络总是中断解决办法...
  4. 乱世王者服务器维护,乱世王者千变万化开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
  5. 【Python计量】statsmodels对虚拟变量进行回归
  6. 如何制作gif动态图片
  7. 北京某ERP公司产品助理专业一面
  8. java代码在图片上画框
  9. Android开发--更换字体
  10. HTML入门(学习方法+概述)