• Category Archives: tomcat

使用jconsole远程监控tomcat的性能

1、修改tomcat的启动文件,在启动文件的CATALINA_OPTS(如果是daemon.sh启动则为JAVA_OPTS)变量中加上以下参数:

2、打开jconsole,输入服务器的IP和监控端口,账号密码为服务器的登录账号和密码,点连接即可。

Tomcat的性能与最大并发(1000)

当一个进程有 500 个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。
当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。
具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。
操作系统对于进程中的线程数有一定的限制:
Windows 每个进程中的线程数不允许超过 2000
Linux 每个进程中的线程数不允许超过 1000
另外,在 Java 中每开启一个线程需要耗用 1MB 的 JVM 内存空间用于作为线程栈之用。
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。
Tomcat 默认的 HTTP 实现是采用阻塞式的 Socket 通信,每个请求都需要创建一个线程处理。这种模式下的并发量受到线程数的限制,但对于 Tomcat 来说几乎没有 BUG 存在了。
Tomcat 还可以配置 NIO 方式的 Socket 通信,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。但没有阻塞式的成熟。
这个并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。如果每个请求都含有很多的数据库操作,那么对于数据库的性能也是非常高的。
对于单台数据库服务器来说,允许客户端的连接数量是有限制的。
并发能力问题涉及整个系统架构和业务逻辑。
系统环境不同,Tomcat版本不同、JDK版本不同、以及修改的设定参数不同。并发量的差异还是满大的。
maxThreads=”1000″ 最大并发数
minSpareThreads=”100″///初始化时创建的线程数
maxSpareThreads=”500″///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount=”700″// 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

 

Redirect apache to tomcat 8 with mod proxy

I’m trying to redirect Apache Webserver to Tomcat 8 in Ubuntu. Both of them are working properly but I can’t redirect from port 80 in Apache to Tomcat in 8080. My apps work un http://localhost:8080/cmsand myapp. I followed this. I tried also AJP mod but it didn’t work. I used a2enmod: a2enmod proxyand a2enmod proxy_http to enable modules.

This is my apache2/sites-available/000-default.conf.

These are my servlet.xml connectors:

Using ProxyPass /cms http://localhost:8080/cms don’t work either.

Thanks in advance.

关于tomcat使用daemon.sh时输出日志中文乱码的问题解决方法

修改tomcat下bin目录中的daemon.sh文件,

原本有一行是这样:

这行代表tomcat运行时jdk的执行参数为空,我们在后面补充上 “-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8″ , 也就是:

保存后重新启动tomcat即可解决乱码问题。

Ubuntu下配置Tomcat以指定(非root)身份运行

通常情况下,在配置Tomcat生产环境时,通常会配置Tomcat以特定的身份运行(非root),这样有利于提高安全性,防止网站被黑后的进一步权限提升。

本文依赖的环境:

Ubuntu(其实大部分同样适用于CentOS)JVM(安装并已配置好环境变量)gcc、make等编译工具JAVA_HOME=/usr/lib/jvm/jdk1.7.0_55CATALINA_HOME=/usr/local/apache-tomcat-7.0.53运行Tomcat的用户名为tomcat

首先需要到Apache Tomcat官网下载最新版Tomcat

Apache Tomcat:http://tomcat.apache.org

下载好安装包,解压到/home/apache-tomcat-7.0.67下

设置Tomcat为Service

设置Tomcat开机自启动 (前提是已经设置Tomcat为Service)

把解压缩版的tomcat6注册成服务并设置自启动

操作步骤:
1、在“开始”→“运行”中输入cmd 命令,进入MS-DOS界面
2、cd 到tomcat的bin目录下
C:\> cd tomcat/bin
3、运行命令service install, 就可以把tomcat注册成系统服务了
c:\tomcat\bin> service install
运行命令service uninstall,就可以删除服务。
c:\tomcat\bin> service uninstall

当然,这样注册出来的服务启动类型是手动的;若想设置为开机自动启动,则需要修改bin目录下的service.bat文件。
打开此文件,在倒数第三行左右的那句输出
echo The service ‘%SERVICE_NAME%’ has been installed.
这句是输出服务安装成功,在这之前加一句
sc config %SERVICE_NAME% start= auto
就OK了,以后开机后tomcat服务就自动启动了

备注:
启动/停止tomcat服务的命令,如下:
启动tomcat服务: c:\tomcat> net start tomcat6
停止tomcat服务: c:\tomcat> net stop tomcat6
或者
打开“服务”对话框下进行手动点击“启动”|“停止”按钮来操作。

close