[转帖]Tomcat优化实践-网站运维_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3035 | 回复: 0   主题: [转帖]Tomcat优化实践-网站运维        下一篇 
tngou
注册用户
等级:中校
经验:2433
发帖:192
精华:15
注册:2014-4-28
状态:离线
发送短消息息给tngou 加好友    发送短消息息给tngou 发消息
发表于: IP:您无权察看 2014-5-3 22:07:32 | [全部帖] [楼主帖] 楼主   主页

作为底层码农,其实并不关心项目的优化!然而如今自己却不得不面对这样的问题,服务器的优化也许是最先优化的选择。

这里我就分享一下,虽然有些不足!但希望有所分享和帮助!

一、服务器配置

先介绍一下服务器,在阿里云上买的包月服务器69个大洋,作为底层的码农还真的出血了。同时也在阿里云旗下的万网注册了yi18.net域名
CPU核数:1核
内存大小:512MB
系统名称:CentOS 6.3 64位 安全加固版
宽带:1M
服务器地址:www.yi18.net 
web服务器:Tomcat8

二、配置Tomcat自带的管理

Tomcat自己的Manager
配置文件conf/tomcat-users.xml
 角色

  • manager-gui -允许访问的HTML界面和状态页面

  • manager-script - 允许访问文本界面和状态页面
  • manager-jmx - 允许访问JMX代理和状态页

  • manager-status - 允许访问状态页面只 
    与用户manager-guimanager-script或manager-jmx的角色

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>




我这里看到的JVM的信息 
空闲内存: 37.12 MB 总内存: 86.94 MB 最大内存: 237.81 MB

三、修改内存配置

JVM内存分配设置的参数有四个

-Xmx Java Heap最大值,默认值为物理内存的1/4;
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每个线程的Stack大小,不熟悉最好保留默认值;
-XX:PermSize:设定内存的永久保存区域; 
-XX:MaxPermSize:设定最大内存的永久保存区域;
-XX:PermSize:设内存的永久保存区域;
-XX:NewSize:设置JVM堆的‘新生代’的默认大小;
-XX:MaxNewSize:设置JVM堆的‘新生代’的最大大小;

其实我们配置的基本上自由前面两个!贴出我的配置 
要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。

# OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="-Xms128m -Xmx 128m"
cygwin=false


由于我这里512M的物理总内存,网上建议用256M 但我这里用的MYSQL,所以内存设置在128M,不过也高兴得太早,Tomcat还是会出现自动关闭,查看log还是内存分配的问题!看来的我程序有问题,在做java web时一般不会考虑内存的,看来我错了,最后我不等不把 最大内存改为:-Xmx100m,
现在JVM信息,空闲: 14.16 MB 总内存: 100.56 MB 最大: 100.56 MB ,虽然系统慢了,但宕机就几率就减少了!慢总比错误好点。看来内存真重要!

四、配置service.xml

清楚不必要的信息

在真实的部署下还是要清空webapps下的目录下所有内容

清理一下 logging.properties ,以免产生不必要的日志文件。
清理service.xml保留基本信息

01
<?xml version='1.0' encoding='utf-8'?>
02
03
<Server port="8005" shutdown="SHUTDOWN">
04
<Service name="Catalina">
05
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
06
maxThreads="150" minSpareThreads="4"/>
07
<Connector port="8080" protocol="HTTP/1.1"
08
connectionTimeout="20000"
09
redirectPort="8443" executor="tomcatThreadPool"/>
10
<Engine name="Catalina" defaultHost="localhost">
11
<Host name="localhost"  appBase="webapps"
12
unpackWARs="false" autoDeploy="false"
13
xmlValidation="false" xmlNamespaceAware="false">
14
<Context path="/yi18" docBase="/home/www/yi18"  reloadbale="false<span></span><span></span>"></Context>
15
</Host>
16
</Engine>
17
</Service>
18
</Server>




我这里就只添加了线程池,tomcatThreadPool

五、Session的配置

在默认的情况下Tomcat的sessionID 为JSESSIONID,而JSESSiONID是Tomcat特指的Cookie。虽然我这里没有用上Tomcat中的Session。但修改这个session cookie值也是必要的。我的配置如下

 <Context docBase="/home/www/yi18"path="/yi18"reloadable="true"


 sessionCookieName="yi18_net"/>


所以这里的JSESSiONID就变成了yi18_net,其实也没有什么功能,只是觉得高端大气上档次。

本以为一切顺利,但自己的程序的确问题大,www.yi18.net访问依然问题多多!

原文地址:http://blog.yi18.net/articles/2014/05/03/1399125920048.html

该贴被tngou编辑于2014-5-3 22:09:59

该贴被tngou编辑于2014-5-3 22:14:56



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论