标签:lookup 虚拟主机 下载 哪些 脚本 而且 http local coding
配置Tomcat虚拟主机和优化[root@localhost ~]# mkdir /usr/local/tomcat/webapps/www
[root@localhost ~]# echo "This is www page\!" > /usr/local/tomcat/webapps/www/index.jsp
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/bbs
[root@localhost ~]# echo "This is bbs page\!" > /usr/local/tomcat/webapps/bbs/index.jsp
2.修改 Tomcat 主配置文件
修改 Tomcat 主配置文件/usr/local/tomcat/conf/server.xml,在</Host>下面增加如下内容:
//关于 www.test.com 的虚拟主机配置
<Hostname="www.test.com"appBase="/usr/local/tomcat/webapps"
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/www"
path="" reloadable="true" />
</Host>
//关于 bbs.test.com 的虚拟主机配置
<Host name="bbs.test.com" appBase="/usr/local/tomcat/webapps"
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/bbs"
path="" reloadable="true" />
</Host>
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
3.测试
客户端绑定两个域名需要写入本机 hosts,Tomcat 默认端口是 8080。
192.168.9.236 www.test.com
192.168.9.236 bbs.test.com
三、Tomcat 优化
Tomcat 的缺省配置并不适合生产环境,它会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。优化主要有三方面,分为操作系统优化(内核参数优化),Tomcat 配置文件参数优化,Java 虚拟机(JVM)调优。其中最难理解的就是 jvm调优。
1.Tomcat 配置文件参数优化
关于 Tomcat 主配置文件 server.xml 里面很多默认的配置项,但并不能满足业务需求, 常用的优化相关参数如下。
如果已经对代码进行了动静分离,静态页面和图片等数据就不需要 Tomcat 处理了,那么也就不需要在 Tomcat 中配置压缩了。因为这里只有一台 Tomcat 服务器,而且压测的是Tomcat 首页,会有图片和静态资源文件,所以这里启用压缩。
三、以上是一些常用的配置参数,还有好多其它的参数设置,还可以继续深入的优化,HTTP Connector 与 AJP Connector 的参数属性值,可以参考官方文档的详细说明进行学习。链接 地 址 http://tomcat.apache.org/tomcat-9.0-doc/config/http.html , 下 面 开 始 对Tomcat 配置文件优化进行前后的对比。
压测脚本里设置的是 20 秒启动 4000 个线程数,并发为 2000,超时时间是 50000 毫秒。也可以适当的根据自己的需求进行修改。为了不那么复杂,从压测结果看只关注聚合报告, 聚合报告只关注 Average、90% Line、Error%这三列,因为压测 Tomcat 首页压力不会太大, 所以 Error 都是为 0 属于正常。先看一组优化前(默认的配置)压测截图
打开 Tomcat 主配置文件 server.xml,找到默认配置:
<Connector port="8080" protocol="HTTP/11.1" connectionTimeout="20000"
redirectPort="8443" />
将默认配置做修改:
<Connector port="8080" protocol="HTTP/11.1"
connectionTimeout="20000"
redirectPort="8443" minSpareThreads="50"
enableLookups="false" disableUploadTimeout="true" acceptCount="300" maxThreads="500" processorCache="500"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image
/jpg,image/png"/>
重新启动 Tomcat 服务器,jmeter 还是继续保持同样的参数进行压测,优化后压测截图
常见错误说明
1.java.lang.OutOfMemoryError: Java heap space——JVM Heap(堆)溢出
JVM 在启动的时候会自动设置 JVM Heap 的值,其初始空间(即-Xms)是物理内存的 1/64,最大空间(-Xmx)不可超过物理内存。可以利用 JVM 提供的 -Xmn -Xms -Xmx 等选项可进行设置。Heap 的大小是 Young Generation 和 Tenured Generaion 之和。在 JVM 中如果 98% 的时间是用于 GC,且可用的 Heap size 不足 2%的时候将抛出此异常信息。
解决方法:手动设置 JVM Heap(堆)的大小。
2.java.lang.OutOfMemoryError: PermGen space——PermGen space 溢出
PermGen space 的全称是 Permanent Generation space,是指内存的永久保存区域。为什么会内存溢出,这是由于这块内存主要是被 JVM 存放 Class 和 Meta 信息的,Class 在被 Load 的时候被放入 PermGen space 区域,它和存放 Instance 的 Heap 区域不同,sun 的GC 不会在主程序运行期对 PermGen space 进行清理。所以,如果你的 APP 会载入很多 CLASS 的话,就很可能出现 PermGen space 溢出。
解决方法:手动设置 MaxPermSize 大小。
3.java.lang.StackOverflowError——栈溢出
JVM 依然是采用栈式的虚拟机,这个和 C 与 Pascal 都是一样的。函数的调用过程都体现在堆栈和退栈上了。调用构造函数的“层”太多了,以致于把栈区溢出了。通常来讲,一 般栈区远远小于堆区的,因为函数调用过程往往不会多于上千层,而即便每个函数调用需要 1K 的空间(这个大约相当于在一个 C 函数内声明了 256 个 int 类型的变量),那么栈区也不过是需要 1MB 的空间。通常栈的大小是 1-2MB 的。
通常递归也不要递归的层次过多,很容易溢出。 解决方法:修改程序。
标签:lookup 虚拟主机 下载 哪些 脚本 而且 http local coding
原文地址:https://blog.51cto.com/14557905/2464915