1,Tomcat启动报错例如以下:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memcachedClient' defined in 

file [/usr/local/apache-tomcat-6.0.37_6500/webapps/trade_service/WEB-INF/classes/META-INF/spring/springContext_memcached.xml]: 

Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method 

[public net.rubyeye.xmemcached.MemcachedClient net.rubyeye.xmemcached.XMemcachedClientBuilder.build() throws java.io.IOException] 

threw exception; nested exception is java.lang.OutOfMemoryError
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java:581)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod (AbstractAutowireCapableBeanFactory.java:1015)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference (BeanDefinitionValueResolver.java:322)
... 44 more
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public net.rubyeye.xmemcached.MemcachedClient net.rubyeye.xmemcached.XMemcachedClientBuilder.build() throws java.io.IOException] threw exception; nested exception is java.lang.OutOfMemoryError
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:169)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java:570)
... 53 more
Caused by: java.lang.OutOfMemoryError

,

2,看到创建memcache clent报错,立即去memcacheserver查看一下,memcache正常执行,内存也足够剩余。

[root@localhost ~]# tail -f /tmp/memcache_error.log
<287 0x00 0x00 0x00 0x00
<287 0x00 0x00 0x00 0x00
<287 0x00 0x00 0x00 0x00
>287 Writing bin response:
>287 0x81 0x0b 0x00 0x00
>287 0x00 0x00 0x00 0x00
>287 0x00 0x00 0x00 0x06
>287 0x00 0x00 0x00 0x00
>287 0x00 0x00 0x00 0x00
>287 0x00 0x00 0x00 0x00
...
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 5938 3368 2570 0 195 296
-/+ buffers/cache: 2876 3061
Swap: 7935 0 7935
[root@localhost ~]#

问题在哪里?再看看日志里面有误error或者warning信息:

[root@localhost ~]# cat  /tmp/memcache_error.log  |grep warning
[root@localhost ~]# cat /tmp/memcache_error.log |grep error
[root@localhost ~]#

一点错误信息也没有,推断问题不是出在memcache这一块。

3,去check tomcatserver

[root@localhost logs]# free -m
total used free shared buffers cached
Mem: 18022 16943 1078 0 104 675
-/+ buffers/cache: 16162 1859
Swap: 20031 8012 12019
[root@localhost logs]#

仅仅剩余1个G的内存,去改动一下tomcat的内存配置:

[root@localhost bin]# vim catalina.sh

#JAVA_OPTS="-Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=768m"
# add by wangqi on 20140614
JAVA_OPTS="-Xms512m -Xmx512m -Xss128K -XX:PermSize=64m -XX:MaxPermSize=256m"

再重新启动tomcat,看到还是报一样的错误。

4,回到应用本身去查问题

跟开发者一起排查,看到是trade_service启动了过多的多余的事务,把tomcat的内存耗光了,所以关闭掉多余的事务,再启动tomcat,就不会再报错。

感慨:就跟大部分web应用卡,页面登录不上去,对应过慢非常多是出在效率低下的sql上面,tomcat启动不起来,内存溢出大部分也是在java代码上面,大家须要写代码或者sql须要慎重,且写且慎重。

最新文章

  1. java语言程序设计(一)-1
  2. AngularJS in Action读书笔记2——view和controller的那些事儿
  3. linux多线程-互斥&amp;条件变量与同步
  4. Lodop在搜狗兼容模式下打印无边框问题
  5. SqlServer中Sql语句的逻辑执行顺序
  6. Daily Scrum5
  7. C++静态变量对象的建立和删除,兼论MFC开始运行的起点(全局对象)
  8. Hdu3436-Queue-jumpers(伸展树)
  9. 使用ServletFileUpload实现上传
  10. openstack 网络简史
  11. 【前端】Vue2全家桶案例《看漫画》之七、webpack插件开发——自动替换服务器API-URL
  12. Nginx出现500 Internal Server Error 错误的解决方案
  13. Spring.factories扩展机制
  14. go语言中结构struct
  15. 多了解一下Chrome开发者控制台
  16. Python 安装路径, dist-packages 和 site-packages 区别
  17. 【转】sshpass-Linux命令之非交互SSH密码验证
  18. Codeforces Round #360 (Div. 2) B. Lovely Palindromes 水题
  19. Python学习札记(二十二) 函数式编程3 filter &amp; SyntaxError: unexpected EOF while parsing
  20. 【排序】插入排序,C++实现

热门文章

  1. String源码学习
  2. C#委托的详细使用
  3. Material Calendar View 学习记录(二)
  4. cocoa pods 安装 转载
  5. JS控制文本框textarea输入字数限制的方法
  6. Mysql学习(慕课学习笔记5)约束
  7. Gora官方文档之二:Gora对Map-Reduce的支持
  8. PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr
  9. Modified Kaprekar Numbers
  10. Unix/Linux环境C编程入门教程(40) 初识文件操作