探讨一下,双linux主机,每台主机启8个tomcat,共享存储的解决方案

现有两台高性能的pc服务器作web服务器,每台硬件:cpu(4路12核,共48个cpu),内存64G,每台软件:RHEL5.5、SUNJDK1.6、Tomcat6。

由于jvm堆内存回收时间的限制,不敢为堆分配大内存,每个jvm分配了4G内存(新生代1.5G并行收集,平均每次回收0.0303220secs,每1.5分钟回收一次,旧生代并发收集,平均每次回收0.6230031secs,每5个小时回收一次),每台linux使用了8个jvm。每个jvm上使用一个tomcat。每个tomcat上就运行一个webapp,每个tomcat都是相同的应用。每台linux上有一个apache,动态请求负载均衡到这8个tomcat上。使用F5把请求分发到这两个主机上。

session和缓存信息存放在第3台linux主机上的memcached上。

系统一直运行的比较好,但就是每次发布程序的时候比较痛苦。现在每个tomcat的跑的应用存放到一个目录,例如:tomcat1对应的应用目录是/app1,tomcat2=/app2,以此类推,而且还是两台主机,为了可以做到一键发布写了很多的shell脚本。

现在我想可不可以这样,两台主机接一个共享存储,每个主机映射存储上的相同目录,把webapp就部署到这个目录下,所有的tomcat都指向这个目录。这样我只要把程序发布到这个目录下,然后通过脚本重启16个tomcat就可以了。不知大家有没有这么干过的,行不行的通,因为要16个tomcat读取一个webapp目录,有没有什么不良影响。

相关推荐