1.樹脂安裝和自啟動設置
創建啟動自動啟動。
CP contrib/init . resin/etc/RC . d/init . d/resin
vi /etc/rc.d/init.d/resin
設置正確的路徑
JAVA _ HOME =/usr/local/JDK 1 . 6 . 0 _ 13
RESIN _ HOME =/usr/local/RESIN-3.1.8
授予可執行權限。
chmod +x /etc/rc.d/init.d/resin
添加為自啟動服務:
chkconfig -添加樹脂
chkconfig-35級樹脂開啟
服務樹脂啟動
解決啟動服務錯誤:log_daemon_msg:未找到命令。
註釋掉調用函數的地方,用echo代替。比如:
log_daemon_msg“樹脂啟動”
代替
回聲“樹脂啟動”
修改後,可以使用服務樹脂啟動/停止/重啟來執行相關命令。
2.設置resin.conf參數和JVM設置。
& ltJVM-arg & gt;-xmx 4096m & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-xms 4096m & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-xmn 512M & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XSS 50m & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:PermSize = 768m & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:MaxPermSize = 768m & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:survivor ratio = 8 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:MaxTenuringThreshold = 7 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:GCTimeRatio = 19 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+UseParNewGC & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+UseConcMarkSweepGC & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+cmspermgensweeping enabled & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+cmssclassunloadingenabled & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+UseCMSCompactAtFullCollection & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:cmsfullgcsbeforecumption = 2 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:-CMS parallelremarkenabled & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+DisableExplicitGC & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:CMS initiating occupancy fraction = 70 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:SoftRefLRUPolicyMSPerMB = 0 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+printclassshistogram & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+printgdetails & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+printgcstimestamps & lt;/JVM-arg & gt;& ltJVM-arg & gt;-XX:+printgapplicationconcurrenttime & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-XX:+printgapplicationstoppedtime & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-Xloggc:log/GC . log & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-Xdebug & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-DCOM . sun . management . JMX remote & lt;/JVM-arg & gt;
內存設置配置:
& lt內存釋放-min & gt;5M & lt/memory-free-min & gt;
最大線程數
& lt!-最大線程數。-& gt;
& ltthread-max & gt;1024</thread-max & gt;
& lt!-配置套接字超時-& gt;
& lt套接字超時& gt65s & lt/socket-time out & gt;
配置最活躍的連接和超時
& lt!-配置keepalive-& gt;
& ltkeepalive-max & gt;2048 & lt/keepalive-max & gt;
keepalive-time out & gt;15s & lt;/keepalive-time out & gt;
3.配置jconsole監控JVM
$ Java _ home/JRE/lib/management/JMX remote . password . template文件是遠程連接時設置用戶和密碼的文件。
CP $ JAVA _ HOME/JRE/lib/management/JMX remote . password . template $ JAVA _ HOME/jconsole/JMX remote . password
chmod 600 $ JAVA _ HOME/jconsole/JMX remote . password
vi jmxremote.password
刪除#monitorRole RED前的註釋,將RED改為妳要設置的密碼。在resin.conf中添加以下配置,其中被監控主機的IP需要與主機IP壹致。
& ltJVM-arg & gt;-DCOM . sun . management . JMX remote . port = 12345 & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-DCOM . sun . management . JMX remote . SSL = false & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-DCOM . sun . management . JMX remote . access . file =/usr/local/JDK 1 . 6 . 0 _ 13/JRE/lib/management/JMX remote . access & lt;/JVM-arg & gt;& ltJVM-arg & gt;-DCOM . sun . management . JMX remote . password . file =/usr/local/JDK 1 . 6 . 0 _ 13/JRE/lib/management/JMX remote . password & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-DCOM . sun . management . JMX remote . authenticate = true & lt;/JVM-arg & gt;
& ltJVM-arg & gt;-DJ ava . RMI . server . hostname = 192.168.100.9 & lt;/JVM-arg & gt;
基本不需要在客戶端設置,在JDK安裝目錄下(
雙擊jconsole.exe啟動連接對話框。
4.配置樹脂背景管理
& lt管理路徑= " $ { resin . root }/admin " & gt;
& ltuser name = " admin " password = " mnhpobdovrmoyqfwoa 5 w7a = = "/& gt;
& ltresin:if test = " $ { resin . professional } " & gt;
& ltdeploy-service/>
& ltJMX-service/& gt;
& lt日誌服務/>
& ltxa-log-service/>
& lt/resin:if & gt;
& lt/management & gt;
& ltwe B- app id = "/resin-admin " root-directory = " $ { resin . home }/PHP/admin " >的文件。
& lt!-
-管理應用程序/樹脂-管理->;
& lt序言& gt
& ltresin:set var = " resin _ admin _ user " value = " admin "/& gt;
& ltresin:set var = " resin _ admin _ password " value = " password "/& gt;
& ltresin:set var = " resin _ admin _ external " value = " true "/& gt;
& ltresin:set var = " resin _ admin _ unsecure " value = " true "/& gt;
& lt/prologue & gt;
& lt/we B- app & gt;
兩個。網絡優化部分
1.減少TCP連接中的等待時間或關閉等待數據包。
添加以下配置。
net . IP v4 . TCP _ sync ookies = 1
net.ipv4.tcp_tw_reuse = 1
net . IP v4 . TCP _ tw _ recycle = 1
net . IP v4 . TCP _ fin _ time out = 15
net . IP v4 . TCP _ keepalive _ time = 1200
net . IP v4 . TCP _ keepalive _ probes = 5
net . IP v4 . TCP _ keepalive _ intvl = 15
配置屬性描述:
net . IP v4 . TCP _ SYN Cookies = 1表示打開SYN Cookies。當SYN等待隊列溢出時,啟用cookies進行處理,可以防止少量SYN攻擊。默認值為0,這意味著它是關閉的。
Net.ipv4.tcp_tw_reuse = 1表示開啟復用。允許等待時間套接字重新用於新的TCP連接。默認值為0,這意味著它是關閉的。
net . IP v4 . tcp _ tw _ recycle = 1表示打開TCP連接中時間等待套接字的快速恢復,默認值為0,表示關閉。
tcp_syn_retries:整數
默認值為5
對於壹個新的連接,內核在決定放棄之前應該發送多少個SYN連接請求。不應大於255,默認值為5,對應的時間約為180秒。(對於負載重,物理通信好的網絡,這個值偏高,可以修改為2。該值僅用於外部連接,傳入連接由tcp_retries1決定。)
tcp_synack_retries:整數
默認值為5
對於遠程連接請求SYN,內核會發送SYN+ACK數據報來確認收到最後壹個SYN連接請求包。這是所謂的三次握手機制的第二步。這裏決定了在放棄連接之前內核發送的SYN+ACK的數量。不應大於255,默認值為5,對應的時間約為180秒。(這個值可以根據上面的tcp_syn_retries來確定。)
tcp_keepalive_time:整數
默認值為7200(2小時)
當keepalive打開時,TCP發送keepalive消息的頻率。(由於目前網絡攻擊等因素,利用此進行的攻擊比較頻繁。有cu的朋友曾經提到,如果雙方建立連接,然後不發送任何數據或rst/fin消息,那麽持續時間是2小時,是不是空連接攻擊?Tcp_keepalive_time就是為了防止這種情況。我做nat服務時的個人修改值是1800秒)
tcp_keepalive_probes:整數
默認值為9
TCP發送keepalive探測來確定連接斷開的次數。(註意:僅當SO_KEEPALIVE套接字選項打開時,才發送Keep-connected。次數默認不需要修改,但是這個值可以根據情況適當縮短。將其設置為5是合適的)
tcp_keepalive_intvl:整數
默認值為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]} '
三個。解決打開文件過多的問題
有兩種情況會出現打開文件過多的問題:
壹種是在搜索時,主要是因為索引在創建後被移動了。如果在創建索引時沒有出現此錯誤,則通常在搜索時也不會出現。如果出現,有兩種處理方式。壹種是修改合並因子和最小合並因子,並使用。
索引作者。Optimize()優化索引,這將把索引文件的數量減少到文件系統的限制;另壹種方法是修改操作系統中打開文件的數量。該方法如下:
根據最大打開文件數的要求設置系統,並檢查/proc/sys/fs/file-max文件,確認最大打開文件數設置正確。配置操作如下:
# cat /proc/sys/fs/file-max
如果設置值太小,請將/etc/sysctl.conf文件中的變量修改為適當的值。這將在每次重新啟動後生效。
# echo 65535 & gt/proc/sys/fs/file-max
編輯文件/etc/sysctl.conf並插入以下行。
fs.file-max = 65535
執行sysctl–p以生效
設置ulimit–n 65535
在/etc/security/limits.conf文件中設置打開文件的最大數量,以下是提示:
#
添加下面壹行。
* -第65535號文件
這壹行將每個用戶打開文件的默認數量設置為2048。註意“nofile”項有兩個可能的限制。項下是硬的和軟的。為了使修改後的最大打開文件數生效,必須設置這兩個限制。如果使用“-”字符設置,將同時設置硬設置和軟設置。
硬限制表示可以在軟限制中設置的最大值。軟限制是指當前系統生效的設定值。普通用戶可以降低硬限值。但不能增加。軟限制不能設置得高於硬限制。只有root用戶可以增加硬限制。
添加文件限制描述時,只需將當前值翻倍即可。比如要增加默認值1024,最好增加到2048,如果要繼續增加,需要設置為4096。
在另壹種情況下,創建索引時,有兩種可能。壹個是合並因子太小,導致創建的文件數量超過操作系統限制。此時,您可以修改合並因子或操作系統打開的文件數量。另壹個是合並因子受虛擬機內存限制無法調大,要索引的文檔數量很大。此時只能通過修改操作系統中打開文件數量的限制來解決。
以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 /etc/security/limits.conf