一、tomcat7默认参数?
Socket参数选项:
1、TCP_NODELAY:表示立即发送数据。
2、SO_RESUSEADDR:表示允许重用Socket所绑定的本地地址
3、SO_TIMEOUT:表示接受数据时的超时时间。
4、SO_LINGER:表示当执行close();方法时候,是否理解关闭底层的socket。(Reset报文)
setSoLinger(true, 0): 执行该方法,那么执行Socket的close方法,该方法也会立即返回,但底层的Socket也会立即关闭,所有未发送完的剩余数据被丢弃
setSoLinger(true, 3600): 那么执行Socket的close方法,该方法不会立即返回,而进入阻塞状态,同时,底层的Socket也会尝试发送剩余的数据,只有满足下面的两个条件之一,close方法才会返回:
(1):底层的Socket已经发送完所有的剩余数据
(2): 尽管底层的Socket还没有发送完所有的剩余数据,但已经阻塞了3600秒,close()方法的阻塞时间超过3600秒,也会返回,剩余未发送的数据被丢弃。
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
5、SO_SNFBUF:表示发送数据的缓冲大小
6、SO_RCVBUF:表示接受数据的缓冲区的大小
7、SO_KEEPALIVE:表示长时间处于空闲状态的SOCEKT,是否自动把他/她关闭
8、OOBINLINE:表示是否支持发送一个字节的TCP紧急数据
默认参数
注: Connector 通常在%HOME_TOMCAT%/conf/servser.xml 文件内
# 正常参数
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置参数调试
# 优化参数
<Connector port="8080"
protocol="HTTP/1.1"
maxThreads="1000"
minSpareThreads="100"
acceptCount="1000"
maxConnections="1000"
connectionTimeout="20000"
maxHttpHeaderSize="8192"
tcpNoDelay="true"
compression="on"
compressionMinSize="2048"
disableUploadTimeout="true"
redirectPort="8443"
enableLookups="false"
URIEncoding="UTF-8" />
参数详解
1)port
注:代表Tomcat端口号,默认8080。
2)protocol
注:协议类型,可选类型有4种,BIO(阻塞型IO),NIO,NIO2和APR。
# BIO
BIO(Blocking I/O) 阻塞式I/O操作,传统的Java I/O操作(即java.io包及其子包)。Tomcat在默认情况下,是以bio模式运行的,bio模式是三种运行模式中性能最低的一种。BIO配置采用默认即可。
BIO更适合处理简单流程,如程序处理较快可以立即返回结果。简单项目及应用可以采用BIO。
# NIO
NIO(New I/O)是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、非阻塞I/O操作的Java API它拥有比传统I/O操作(bio)更好的并发运行性能。
NIO更适合后台需要耗时完成请求的操作,如程序接到了请求后需要比较耗时的处理这已请求,所以无法立即返回结果,这样如果采用BIO就会占用一个连接,而使用NIO后就可以将此连接转让给其他请求,直至程序处理完成返回为止。
# APR
APR(Apache Portable Runtime/Apache可移植运行时),是Apache HTTP服务器的支持库。你可以简单地理解为:Tomcat将以JNI的形式调用 Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高 Tomcat对静态文件的处理性能。
APR可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。
# 修改方式
//BIO
protocol="HTTP/1.1"
//NIO
protocol="org.apache.coyote.http11.Http11NioProtocol"
//NIO2
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
//APR
protocol="org.apache.coyote.http11.Http11AprProtocol"
3)maxThreads (线程池的大小默认200)
注:连接器创建处理请求线程的最大数目,处理同事请求的最大数目,默认值为200。
如果一个执行器与此连接器关联,则忽略此属性,因为该属性将被忽略,所以该连接器将使用执行器而不是一个内部线程池来执行任务。maxThreads是一个重要的配置属性,maxThreads配置的合理直接影响了Tomcat的相关性能。maxThreads并不是配置的越大越好,事实上你即使配置成999999也是没有用的,因为这个最大值是受操作系统及相关硬件所制约的,并且最大值并不一定是最优值,所以我们追寻的应该是最优值而不是最大值。
QPS(Query Per Second):每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。我们常常使用 QPS值来衡量一个服务器的性能。
QPS = 并发数 / 平均响应时间
并发数 = QPS * 平均响应时间
一个系统吞吐量通常由QPS、并发数两个因素决定,每套系统的这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。所谓吞吐量这里可以理解为每秒能处理请求的次数。
所以选择一个合理的 maxThreads值,其实并不是那么容易的事。因为过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助;找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出。
# 获取最佳maxThreads的最佳值
(1)通过线上系统不断使用和用户的不断增长来进行性能测试,观察QPS,响应时间,这种方式会在爆发式增长时系统崩溃,如双12等。
(2)根据公式计算,服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量,这种方式有时会被误导,因为某些系统处理环节可能会耗时比较长,从而影响公式的结果。
(3)单、多用户压力测试,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值的附近应该就是最佳线程数量,这种方式理想场景比较适用,实际情况会比这个复杂的多。
(4)根据系统的自身情况调整,如硬件限制,系统限制,程序处理能力限制等。
(5)定期修改为不同的 maxThreads值,看服务器响应结果及用户反应。
# QPS和线程数的关系
(1)在最佳线程数量之前,QPS和线程是互相递增的关系,线程数量到了最佳线程之后,QPS持平,不在上升,甚至略有下降,同时相应时间持续上升。
(2)同一个系统而言,支持的线程数越多(最佳线程数越多而不是配置的线程数越多),QPS越高。
# QPS和响应时间的关系
(1)对于一般的web系统,响应时间一般有CPU执行时间+IO等待时间组成。
(2)CPU的执行时间减少,对QPS有实质的提升,IO时间的减少,对QPS提升不明显。如果要想明显提升QPS,优化系统的时候要着重优化CPU消耗大户。
4)minSpareThreads
注:线程的最小运行数目,这些始终保持运行。如果未指定,默认值为10。
5)acceptCount (默认为100,ServerSocket.accept队列,backlog:半队列的大小)
注:最大队列长度。一般与maxThreads相同,默认为100。
当所有可能的请求处理线程都在使用时传入连接请求的最大队列长度。如果未指定,默认值为100。一般是设置的跟 maxThreads一样或一半,此值设置的过大会导致排队的请求超时而未被处理。所以这个值应该是主要根据应用的访问峰值与平均值来权衡配置。
6)maxConnections (NIO与NIO2的默认值为10000,accept的Socket的大小)
注:在任何给定的时间内,服务器将接受和处理的最大连接数。当这个数字已经达到时,服务器将接受但不处理,等待进一步连接。NIO与NIO2的默认值为10000,APR默认值为8192。
7)connectionTimeout (设置到Socket.setSoTimeout(connectionTimeout ))
注:当请求已经被接受,但未被处理,也就是等待中的超时时间。单位为毫秒,默认值为60000。通常情况下设置为30000。
8)maxHttpHeaderSize
注:请求和响应的HTTP头的最大大小,以字节为单位指定。如果没有指定,这个属性被设置为8192(8 KB)。
9)tcpNoDelay
注:如果为true,服务器socket会设置TCP_NO_DELAY选项,在大多数情况下可以提高性能。缺省情况下设为true。
10)compression
注:是否启用gzip压缩,默认为关闭状态。这个参数的可接受值为“off”(不使用压缩),“on”(压缩文本数据),“force”(在所有的情况下强制压缩)。
11)compressionMinSize
注:如果compression="on",则启用此项。被压缩前数据的最小值,也就是超过这个值后才被压缩。如果没有指定,这个属性默认为“2048”(2K),单位为byte。
12)disableUploadTimeout
注:这个标志允许servlet Container在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上传的时候更长的超时时间。如果没有指定,设为false。
13)enableLookups
注:关闭DNS反向查询。
14)URIEncoding
注:URL编码字符集。
二、tomcat7漏洞修复方法?
下个360助手就可以使用修复功能进行修复
三、运行tomcat7时出现错误?
原因分析:
1、触摸板驱动程序受到损坏或被卸载。
2、笔记本触摸板被关闭,导致触摸板失灵。
3、电脑中病毒。
4、笔记本触摸板出现故障(如进水、内部有异物等)。
四、myeclipse配置tomcat7用不了?
解决方法是,首先打开myeclipse进入设置界面,再点击右上角的目录选项,然后选择配置tomcat7文件,再打开就可以用了。
五、myeclipse tomcat7为什么突然用不了?
可以依次检查网络,端口,资源,配置,日志信息等,定位并排除问题。
六、有哪些免费虚拟主机?
三丰云”"免费虚拟主机"“免费云服务器
免费云服务器配置因为CPU是1核,内存1G,这样的配置下适合装Liunx操作系统。
如果装windows系统建议大家仅做测试使用,在windows系统下这个配置稍微运行一些应用就会卡顿,影响体验。
遇到卡顿情况解决办法只有选择更高配置的云服务器
用免费云服务器当自己电脑一样进行浏览网站、挂机、聊天等操作的肯定会遇到卡顿情况
大家想想,自己的电脑配置,一定都是大于1核CPU和1G内存的,您把日常的应用放到这个配置上操作,肯定会卡顿。
三丰云免费云服务器主要供大家测试和学习使用,更高的需求建议大家使用高配服务器
三丰云官方网站:https://www.sanfengyun.com
七、哪里有免费虚拟主机?
可以去三丰云,那有免费的虚拟主机,还有免费云服务器,申请后会送一个域名。
如果要把自己写的网页弄成链接,按照指示下载一个叫FlashFXP的程序,上传你所有的网页文件,就可以了,注意上传后要把默认设置改为index.html⚠️
三丰云传送门一 https://www.sanfengyun.com
八、有没有免费虚拟主机?
免费服务器缺点真的太多了,现在我结合个人的经验经历,谈谈免费虚拟主机和服务器,避免企业受到极大的损失。
一、申请免费主机时间久,过程繁琐,且成功几率不高
一些IDC服务商打出免费的广告,目的是为了提升网站的流量以及给自己做一个宣传,申请免费主机需要提供很多的资料,比如企业的联系方式,日后还会打电话给你,进行广告营销。甚至做一些问卷,过程繁琐度就不谈了,不好用户中途就放弃了,就算没有放弃提交了审核,那么还要花上时间等待,至于等完之后还能不能通过,这都是后话了。因为提供大量免费服务器给客户会导致IDC服务商支出过大,亏本,所以服务商宣传上说的天花乱缀,实际能通过申请得到的服务器数量是极少的,因此成功率极低。
二、免费服务器安全性
免费服务器提供商他们提供的服务器是不具备防御功能的,也就是说只要受到一点点的攻击,整个服务器就可能会崩溃。业务会受影响,导致网页打不开流量全部流失,更重要的是企业数据可能会被窃取;就算不被黑客攻击,免费的服务器可能还会泄漏你的个人资料,企业网站数据信息。因为付费服务器是有供应商在管理的,力度肯定要大,免费服务器可能也有,谁也说不好会不会“偷懒”呢,你们说是吧。所以为了安全性,还是付费来的实在。
三、一旦申请带来大量垃圾广告
申请免费服务器肯定会让你填写联系方式,手机、邮箱、QQ等等。供应商通过这些收集用户的信息,可能以后每天会给你手机、邮箱、QQ发送大量的垃圾广告。就算你不点开,大量的广告充斥在你的邮箱、短信想必也是非常影响心情的。更甚你的资料还会被无良供应商泄漏,因此一定要谨慎。
四、服务器暗中收费
服务器供应商会打着免费的旗号,吸引一大批用户后暗中收费。供应商不是道德天使,每个企业都想赚钱,天上不会掉馅饼的,很多朋友遇到过这样的情况:申请服务器开通成功以后,用了一段时间突然要交钱,或者某项功能需要开通某个业务,这不是明摆着坑人吗?但是你也没办法,这些钱你只能硬着头皮交,即便是交的不多,心里也会不好受,明摆着骗人,你却毫无办法。所以在选择免费虚拟主机的时候,就一定要慎重再慎重。记住,“天下没有免费的午餐”!购买主机请选正规渠道吧。付费觉得贵就使用优惠码购买,像是Hostease使用share2023就可以5折入手.
九、JFinal是否能使用Tomcat7做服务器?
1、JFinal能使用Tomcat 7做服务器2、JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。
十、怎样使用虚拟主机?
怎么用虚拟主机?
首先,要做的是绑定解析,在绑定解析中包含了域名解析和域名绑定这两个步骤。在开通虚拟主机之后,服务商就会要求用户们将域名作为主要发展域名,需要注意的是域名和主机是共同配置注册的,也能够自己来进行注册,只有这样才能够在主机开通之后,将默认域名网址成功的绑定,如果服务站点多的话,在绑定域名之后,还需要在网页页面中添加附加值。
其次,在绑定域名解析之后,需要将域名解析在管理页面中进行操作解析。或者是连接服务域名商,将域名指向主机配置,不过利用主机商进行注册或者是配置的话,就能够在主机配置和开通中进行系统自动升级,等待解析生效。
最后,上传网页,怎么用虚拟主机,这是最关键的一步,能够将主机的默认页面成功解析,接下来需要做的是网页和程序解析。网页利用的是不同的配置工具或者是在主机的后台中将网站成功的生成目录。主机目录一般划分为网站站点以及在网站上传的根母中需要及时移动操作或者是解压,需要用户们根据自己实际情况来操作,确保输入的域名在正确的页面中。
希望对你有所帮助!
- 相关评论
- 我要评论
-