问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何配置resin 3.1.9

发布网友 发布时间:2022-11-07 06:26

我来回答

1个回答

热心网友 时间:2023-11-01 06:58

Resin配置优化
1. Resin安装及自启动设置
创建开机自动启动
cp contrib/init.resin /etc/rc.d/init.d/resin
vi /etc/rc.d/init.d/resin
设置正确的路径
JAVA_HOME=/usr/local/jdk1.6.0_13
RESIN_HOME=/usr/local/resin-3.1.8

赋予可执行权限
chmod +x /etc/rc.d/init.d/resin
加为自启动服务:
chkconfig --add resin
chkconfig --level 35 resin on
service resin start

解决启动服务错误: log_daemon_msg: command not found
将该函数调用到的地方注释掉并用echo 来代替。如:
log_daemon_msg “resin start”
改为
echo “resin start”
修改好后可以用service resin start/stop/restart来执行相关的命令。

2. 设置resin.conf参数及JVM设置
<jvm-arg>-Xmx4096m</jvm-arg>
<jvm-arg>-Xms4096m</jvm-arg>
<jvm-arg>-Xmn512M</jvm-arg>
<jvm-arg>-Xss50M</jvm-arg>
<jvm-arg>-XX:PermSize=768M</jvm-arg>
<jvm-arg>-XX:MaxPermSize=768M</jvm-arg>
<jvm-arg>-XX:SurvivorRatio=8</jvm-arg>
<jvm-arg>-XX:MaxTenuringThreshold=7</jvm-arg>
<jvm-arg>-XX:GCTimeRatio=19</jvm-arg>
<jvm-arg>-XX:+UseParNewGC</jvm-arg>
<jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
<jvm-arg>-XX:+CMSPermGenSweepingEnabled</jvm-arg>
<jvm-arg>-XX:+CMSClassUnloadingEnabled</jvm-arg>
<jvm-arg>-XX:+UseCMSCompactAtFullCollection</jvm-arg>
<jvm-arg>-XX:CMSFullGCsBeforeCompaction=2</jvm-arg>
<jvm-arg>-XX:-CMSParallelRemarkEnabled</jvm-arg>
<jvm-arg>-XX:+DisableExplicitGC</jvm-arg>
<jvm-arg>-XX:CMSInitiatingOccupancyFraction=70</jvm-arg>
<jvm-arg>-XX:SoftRefLRUPolicyMSPerMB=0</jvm-arg>
<jvm-arg>-XX:+PrintClassHistogram</jvm-arg>
<jvm-arg>-XX:+PrintGCDetails</jvm-arg>
<jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg> <jvm-arg>-XX:+PrintGCApplicationConcurrentTime</jvm-arg>
<jvm-arg>-XX:+PrintGCApplicationStoppedTime</jvm-arg>
<jvm-arg>-Xloggc:log/gc.log</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
内存设置配置:
<memory-free-min>5M</memory-free-min>
最大线程数
<!-- Maximum number of threads. -->
<thread-max>1024</thread-max>

<!-- Configures the socket timeout -->
<socket-timeout>65s</socket-timeout>
配置最活连接和超时时间
<!-- Configures the keepalive -->
<keepalive-max>2048</keepalive-max>
keepalive-timeout>15s</keepalive-timeout>
3. 配置jconsole监控JVM
$JAVA_HOME/jre/lib/management/jmxremote.password.template的文件是远程连接时的设置用户和密码的文件,
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JAVA_HOME/jconsole/jmxremote.password
chmod 600 $JAVA_HOME/jconsole/jmxremote.password
vi jmxremote.password
去掉#monitorRole RED前的注释并将RED修改为你要设置的密码。在resin.conf加入以下配置,其中被监控主机的IP需要和主机IP一致
<jvm-arg>-Dcom.sun.management.jmxremote.port=12345</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.access.file=/usr/local/jdk1.6.0_13/jre/lib/management/jmxremote.access</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.password.file=/usr/local/jdk1.6.0_13/jre/lib/management/jmxremote.password</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=true</jvm-arg>
<jvm-arg>-Djava.rmi.server.hostname=192.168.100.9</jvm-arg>

在客户端基本不用怎么设置,在 JDK 安装目录中(<JDK_HOME>/bin/jconsole.exe)启动 jconsole.exe 就可以打开主界面。输入192.168.100.9:12345 用户名和密码即可看到监控界面中关于jvm的相关信息。操作
双击jconsole.exe启动连接对话框

4. 配置Resin后台管理
<management path="${resin.root}/admin">
<user name="admin" password="MnHpobDOvrMOyQFWoa5w7A=="/>
<resin:if test="${resin.professional}">
<deploy-service/>
<jmx-service/>
<log-service/>
<xa-log-service/>
</resin:if>
</management>

<web-app id="/resin-admin" root-directory="${resin.home}/php/admin">
<!--
- Administration application /resin-admin-->
<prologue>
<resin:set var="resin_admin_user" value="admin"/>
<resin:set var="resin_admin_password" value="password"/>
<resin:set var="resin_admin_external" value="true"/>
<resin:set var="resin_admin_insecure" value="true"/>
</prologue>
</web-app>
二. 网络优化部分
1. 减少TCP连接中的TIME-WAIT或 CLOSE-WAIT包
Vim /etc/sysctl.conf加入以下配置
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15

配置属性说明:
  net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
  net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
  net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
tcp_syn_retries :INTEGER
默认值是5
对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)

tcp_synack_retries :INTEGER
默认值是5
对于远端的连接请求SYN,内核会发送SYN + ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。不应该大于255,默认值是5,对应于180秒左右时间。(可以根据上面的 tcp_syn_retries 来决定这个值)

tcp_keepalive_time :INTEGER
默认值是7200(2小时)
当keepalive打开的情况下,TCP发送keepalive消息的频率。(由于目前网络攻击等因素,造成了利用这个进行的攻击很频繁,曾经也有cu的朋友提到过,说如果2边建立了连接,然后不发送任何数据或者rst/fin消息,那么持续的时间是不是就是2小时,空连接攻击? tcp_keepalive_time就是预防此情形的.我个人在做nat服务的时候的修改值为1800秒)

tcp_keepalive_probes:INTEGER
默认值是9
TCP发送keepalive探测以确定该连接已经断开的次数。(注意:保持连接仅在SO_KEEPALIVE套接字选项被打开是才发送.次数默认不需要修改,当然根据情形也可以适当地缩短此值.设置为5比较合适)

tcp_keepalive_intvl:INTEGER
默认值为75
探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,15是个比较合适的值)

再执行以下命令,让修改结果立即生效:/sbin/sysctl -p
用以下语句看了一下服务器的TCP状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

三. 解决Too many open files问题
Too many open files 问题出现有两种情况:
一种是在搜索的时候出现,多半是由于索引创建完毕之后被移动过,如果创建索引的时候不出现该错误,搜索的时候也一般是不会出现的。如果出现了,有两种处理办法,一种是修改合并因子和最小合并因子,并且使用
IndexWriter.Optimize() 优化索引,这样会将索引文件数量减少到文件系统*之内;另外一种办法是修改操作系统的打开文件数量*。方法如下:
按照最大打开文件数量的需求设置系统, 并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。 配置操作如下:
# cat /proc/sys/fs/file-max
如果设置值太小, 修改文件/etc/sysctl.conf的变量到合适的值。 这样会在每次重启之后生效。
# echo 65535 > /proc/sys/fs/file-max
编辑文件/etc/sysctl.conf,插入下行。
fs.file-max = 65535
执行sysctl –p生效
设置ulimit –n 65535
在/etc/security/limits.conf文件中设置最大打开文件数, 下面是一行提示:
#
添加如下这行。
* - nofile 65535
这行设置了每个用户的默认打开文件数为2048。 注意"nofile"项有两个可能的*措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种*进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。
硬*表明soft*中所能设定的最大值。 soft*指的是当前系统生效的设置值。 hard*值可以被普通用户降低。但是不能增加。 soft*不能设置的比hard*更高。 只有root用户才能够增加hard*值。
当增加文件*描述,可以简单的把当前值双倍。 例子如下, 如果你要提高默认值1024, 最好提高到2048, 如果还要继续增加, 就需要设置成4096。
另外一种情况是在创建索引的时候,也有两种可能,一种是合并因子太小,导致创建文件数量超过操作系统*,这时可以修改合并因子,也可以修改操作系统的打开文件数*;另外一种是合并因子受虚拟机内存的*,无法调整到更大,而 需要索引的doc 数量又非常的大,这个时候就只能通过修改操作系统的打开文件数*来解决了。

在系统访问高峰时间以root用户执行以下的脚本,可能出现的结果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。
ps -aef|grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
系统默认程打开最多文件句柄数值1024。但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性*和软性*。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:
ulimit -HSn 4096 以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来, /etc/security/limits.conf
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“苏大强”的本意是什么?抹黑江苏吗? 伦敦奥运会入场式各个国家和地区的先后顺序 参加奥运会入场式的前后顺序 神马是费用性斜视?没听说过,斜视不就是斗鸡眼么 小儿斜视原因 为了不出现重影,右眼会被推到外斜视眼位,称为“废用性斜视” 在八岁时玩鞭炮炸伤左眼,而形成左眼斜视,现在能治好吗 ...后左眼斜视外斜 左眼下半部有光感 视觉模糊 请问左手术的话 能恢复... 两眼视力差距大会怎么样 关于耳洞的小问题~有经验的和懂行的进~ 围棋术语(2) 女生左胸纹身有什么意思 《汉书》卷六十二·司马迁传第三十二(5) 原神佳酿节时间调过了怎么办 原神时间调快了怎么办 原神佳酿节时间调错了怎么办 王昌龄写的关于边塞的诗句 孩子爱说谎该怎么办 孩子爱说谎该怎么办 铂金ctfp1950b 指环内有 CTFP1950 DO010ctk 字样是什么意思 ctfp1950k字样的戒指是什么金 ctfp1950男戒大概多少一枚 手机原装是5v1a的手机充电器可以用5v2a的同品牌充电器充电吗,会损坏电池吗? 倩女幽魂手游仙君之灵怎么种 户户通58 个台怎么成了34个台 以中秋主题写一首小诗 求一首关于中秋的自编的诗 自创中秋节的现代诗 自己写的中秋节诗歌 释迦牟尼左手施无畏印对么 解决联想x3650 M5 IMM2 无法通过IPMI管理 化纤是什么 你知道吗 小米12与12x有什么区别 消防工程师有必要报班吗? 消防工程师是自学好还是报班通过率高? 消防工程师有没有必要报培训班 现在开始准备2020年消防考试是自学好还是报班?有什么好的建议吗? 消防工程师考试要报班吗?有哪些建议? 讯景rx5808g待机温度 请问一下怎样在京东找自营商品 请问一下怎样在京东找自营商品? 怎么在京东找自营商品 请问怎么在京东找自营商品 请问智行怎么开启候补抢票? 轿车电瓶是12v还是24v 冬天养西兰花成活率高吗? 我想种植青花冬天可以种吗 专家好,温室大棚冬季不上棉被能种西兰花么? 西兰花冬天适合在兰州种吗 电子白板CE认证参考标准有哪些?