`
liuwei1981
  • 浏览: 774056 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:161751
社区版块
存档分类
最新评论

我的程序员之路(十四) 第一次遇到网站在大访问量情况下崩溃

阅读更多

     网站上线后,运行还算稳定。但随着网站访问量的增加,网站开始出现不定时的服务器崩溃现象,导致网站无法访问。

 

     这个问题最为严重的影响是,但是服务器部署了一个Tomcat服务器,两个web应用全部都部署在这个服务器中,结果就是,一旦其中一个服务器导致Tomcat服务器当机,两个网站一起都无法访问,这个问题是需要立即解决的。

 

     网站访问量大,Tomcat服务器就崩溃,崩溃的原因很简单,内存溢出,访问量大是一个原因,后来我也发现,web开发使用的框架本身也有一些问题,会导致在一些情况下大量使用内存,最后导致服务器因为内存溢出而当机。

 

    当时的情况不允许我去从框架里慢慢找问题,解决方案也很简单:将两个web应用分拆到两个Tomcat服务器中,这样起码不会因为其中一个应用当机,连带另一个应用无法访问,然后使用Apache进行tomcat集群,至于内存溢出,因为当时服务器使用的Windows2003,所以解决方案就是,指定Windows任务计划,每天对两个Tomcat服务器进行重启操作,尽量减少内存溢出的可能性。

 

    apache进行Tomcat服务器集群,头儿在我之前就试着配置过,解决的问题和这次一样,但一直没有配置成功,就还是凑活着用一个Tomcat,但后期的计划是还要开发多个web应用,为了避免应用之间的相互影响,这个配置看起来是必须完成的了。

 

    头儿给了我他当初配置招的一些资料,但我试了之后还是有问题,所以自己还是零星的Google了一些配置资料,然后又找到Apache的帮助文档(这个最郁闷,只有英文的),开始一步步的试着配置。

 

    靠着硬是啃那份英文文档(头儿后来也提到过,因为英文文档的原因,一些问题解决不了,网上也没有解决方法所以配置一直失败),和零星的资料,最后还是比较成功的搞成了,达成了事前的预期,因为过程当初看起来比较复杂,所以在JE上还比较详细的记录了一下配置,并写了一份文档给了头儿保存。

 

    后来在另一个服务器进行部署,这个文档作用体现出来了,呵呵

  

    不管怎么样,这个问题总算是解决了,算是了了一个麻烦,也算是我的互联网应用的第一次遇到问题,还算是比较好的解决了。嘿嘿

  

 

   

分享到:
评论

相关推荐

    内存管理内存管理内存管理

    接下来,我将一次一个部分地对该清单进行解释。 在大部分操作系统中,内存分配由以下两个简单的函数来处理: void *malloc(long numbytes):该函数负责分配 numbytes 大小的内存,并返回指向第一个字节的指针。 ...

    C#微软培训资料

    第十四章 继 承 .155 14.1 C#的继承机制.155 <<page 3>> page begin==================== 14.2 多 态 性 .159 14.3 抽象与密封 .163 14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 ...

    自己动手写操作系统(含源代码).part2

    另外,在第一版中帮助我的人,我要再次谢谢你们,因为没有第一版,也就没有第二版。 在所有人中我最应该感谢和最想感谢的,是我的妻子黄丹红,感谢你给我的所有建议,还有你帮我画的图。尤其是,当这本书在我预想的...

    自己动手写操作系统(含源代码).part1

    另外,在第一版中帮助我的人,我要再次谢谢你们,因为没有第一版,也就没有第二版。 在所有人中我最应该感谢和最想感谢的,是我的妻子黄丹红,感谢你给我的所有建议,还有你帮我画的图。尤其是,当这本书在我预想的...

    《你必须知道的495个C语言问题》

    1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么问题。这是为什么? 15 1.29 为什么我的编译器不允许我定义大数组,如double array[256][256]? 15 命名空间 15 1.30 如何判断哪些标识符可以使用,...

    系统级编程实验 第八次实验报告 内存bug

    确保每次释放内存只释放一次,并在释放后设置指针为NULL。 8. **内存对齐**:内存对齐是指数据在内存中的位置必须满足特定的对齐规则,以提高访问速度和兼容性。不正确的对齐可能导致额外的内存开销或访问错误。 9...

    MySQL数据库面试宝典1.pdf

    - **第一范式(1NF)**:确保每列都是不可分割的原子值。 - **第二范式(2NF)**:建立在1NF基础上,要求每个非主键字段完全依赖于整个主键,而非主键的某个部分。 - **第三范式(3NF)**:建立在2NF基础上,要求每个非...

    C++第二次实验备份内容

    使用`try`、`catch`和`throw`关键字,我们可以编写健壮的代码,确保程序在遇到异常情况时能优雅地处理错误,而不是突然崩溃。 实验中可能会涉及文件输入输出(I/O)。C++提供了`fstream`库,通过`ifstream`和`...

    开门见山与循序渐进:一种C语言指针教学方法.pdf

    - 在第一次课中介绍计算机体系结构,包括“冯·诺依曼”架构,并说明程序如何在计算机中运行。 - 介绍存储器及地址的概念,让学生对程序存储、内存分配有初步理解。 - 在教学过程中,从存储器和地址角度解释变量、...

    java字符串实验题目

    - `indexOf(String str)`:返回子字符串在原字符串中第一次出现的位置,若不存在则返回-1。 - `replace(char oldChar, char newChar)`:将所有出现的oldChar替换为newChar。 - `trim()`:去除字符串两端的空白字符。...

    中北大学软件学院操作系统学习报告 第二次 存储器管理功能

    ### 中北大学软件学院操作系统学习报告 第二次 存储器管理功能 #### 一、引言 内存管理作为计算机系统中的核心组成部分,扮演着至关重要的角色。它不仅影响着计算机的性能表现,还直接关系到系统的稳定性和安全性...

    禁止程序多次运行.zip易语言程序源码资源下载

    4. **互斥量(Mutex)**:另一种常见的方法是利用互斥量,这是一个同步对象,一次只允许一个线程访问。创建程序时,可以创建一个全局互斥量,当第二次尝试运行时,由于互斥量已存在,程序将无法继续执行。 5. **...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    2021-2022计算机二级等级考试试题及答案No.13707.docx

    2. 键盘与鼠标的使用:虽然在许多情况下鼠标提供了更直观的交互方式,但并非所有场景下都比键盘更方便。例如,程序员在编写代码时通常更依赖键盘快捷键,以提高工作效率。 3. 窗体设计视图:窗体设计视图主要用于...

    java工程师面试题

    它们通常用于创建一次性使用的类,尤其是在事件处理和回调中。匿名内部类可以同时实现多个接口,但不能同时继承一个类和实现一个接口。 【静态嵌套类与内部类】 内部类(非静态嵌套类)与静态嵌套类的主要区别在于...

    c语言课件:第 6 章 利用数组处理批量数据.ppt

    在C语言中,数组是一种非常重要的数据结构,它允许我们一次性处理多个同类型的数据。第6章的主题是“利用数组处理批量数据”,旨在探讨如何高效地管理和操作批量数据。数组可以被视为一组具有相同数据类型的元素的...

    13个你可能未使用过的Python教程!.docx

    此外,还可以使用`dict.setdefault(key, default)`来设置默认值,并在第一次设置时插入到字典中。 7. **列表推导式(List Comprehensions)**: 列表推导式是一种简洁的创建新列表的方式,它基于某个条件对现有...

    java 面试题 总结

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 17、abstract class和interface有什么区别? 声明方法...

    第11章 动态数据结构的C语言实现-常见的内存错误1

    确保每次只释放一次内存,避免在同一块内存上执行多次`free()`。 这些错误通常是由于对C语言内存管理理解不足造成的。理解并正确使用`malloc()`、`calloc()`、`realloc()`和`free()`函数,以及掌握内存错误的检测和...

    C语言初学者相对难处理的问题或概念.docx

    数组名可以被视为指向数组第一个元素的指针。理解指针算术(如`p + i`指向数组第i+1个元素)、数组名作为指针常量以及它们之间的差异(如数组边界检查与指针越界)是理解C语言的重要一步。 - **复杂指针表达式**:...

Global site tag (gtag.js) - Google Analytics