亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux下jvm、tomcat、mysql、log4j優化配置筆記

系統 1821 0

?小菜一直對操作系統心存畏懼,以前也很少接觸,這次創業購買了Linux云主機,由于木有人幫忙,只能自己動手優化服務器了。。。。

???????? 小菜的云主機配置大致為:centeos6(32位),4核心cpu,4G內存,5M獨享帶寬。

????????

一、jvm內存優化方案。

?

???????? 要優化服務器,首先從jvm入手,分配好jvm內存,配置方案如下:

???????? declare -x JAVA_OPTS="-server -Xms1280M -Xmx1280M -Xmn512M -Xss1024k -XX:+AggressiveOpts -XX:+UseParallelGC? -XX:+UseBiasedLocking"

???????? 其中,-server是讓jvm在服務模式下運行,可以提高jvm運行效率,其他的就不用多操心了。

???????? -Xmx是最大內存,如果是32操作系統,2G內存以上,設置為1280G是最優的,設置太大了會造成jvm崩潰,這是32位jvm本身的限制造成的。

???????? -Xmn是最小內存,官方推薦為最大內存的3/8,這里取下整,就521M了

???????? -Xms為初始化內存,直接與最大內存一致,這樣可以避免內存重復分配,降低效率,直接上來就是最大的,jvm也不用再擴展內存了,節省時間。

???????? -Xss是每個線程所占用的內存,也就是每個線程的堆棧大小,太小了容易溢出,太大了會導致創建的線程數量減少,因為最大容量是有限的。這里最大內存為1280M,理論上可以創建1000個左右線程,差不多支持500個并發訪問(是并發訪問哦,也就是500個用戶同一時刻點擊),已經相當可以了。

???????? -XX:+AggressiveOpts,加快編譯。

???????? -XX:+UseParallelGC,優化垃圾回收。

???????? -XX:+UseBiasedLocking,優化鎖機制。

????????

???????? 將上邊這條配置,添加到tomcat安裝目錄下的\bin\catalina.sh文件中,放在哪個位置無所謂,只要在cygwin=false這句話之前就可以了。????

?

二、tomcat服務器優化方案

????????

??????? ? 搞定了jvm,接下來就要配置tomcat了,配置如下:

??????

      1   <Connector port="80" protocol="HTTP/1.1" 

2 

3                maxHttpHeaderSize="8192" 

4 

5                maxThreads="1000" minSpareThreads="100" maxSpareThreads="300" 

6 

7                enableLookups="false" redirectPort="8443" acceptCount="200" 

8 

9                connectionTimeout="50000" disableUploadTimeout="true"/> 
    

?

?

???????? 這些配置中,我們關心的有:

???????? maxThreads最大線程數,設為1000可以創建1000個線程,也就是1000個并發事務,大約可以支持500個完全并發訪問,這是一個相當恐怖的數字,可以試想一下,500個用戶同時點擊,是什么概率。

???????? minSpareThreads最小備用線程數,可以理解為,服務器一旦啟動,馬上創建這么多線程以備使用,因此設置太大了浪費資源,太小了會降低效率,這個就要根據讀者的服務器配置和具體的訪問量來衡量,不能一概而論,我這里的設置僅僅是個參考,本服務器訪問量大約每天幾十萬pv,并且比較集中。

???????? maxSpareThreads最大備用線程數,創建的線程數量超過這個數量時,如果某些線程空閑,那么這些會被回收,直到線程總數量小于這個值。

???????? acceptCount當tomcat啟動的線程數達到最大時,等待的線程數量(注意并沒有新線程創建,只是預定了而已)。這個數值也需要根據實際情況設置,如果設置的偏小,會造成很多請求直接被拒絕;如果設置的偏大,會造成很多請求超時,讀者理解一下吧!

???????? enableLookups關閉tomcat的dns查詢,節省帶寬,無需過多了解。

???????? disableUploadTimeout這個標志允許servlet container在一個servlet執行的時候,使用一個不同的,更長的連接超時。最終的結果是給servlet更長的時間以便完成其執行,或者在數據上載的時候更長的超時時間,總之,就是為了保證每次請求都能順利完成。

?????? ? 將這段話復制到tomcat安裝目錄下的\conf\server.xml文件中。

???????? 注意,這個配置在server.xml中本來就存在,可能要和讀者以前的配置融合一下,別直接盲目覆蓋。。。

?

??? 三、MySQL優化方案

?

???????? Mysql優化,小菜了解到的就是修改最大連接數,因為mysql默認的最大連接數是100,對于稍微大點的項目,肯定是不夠的。

????? 項目端配置

???????? 最大連接數,首先要在程序里設定,如果您的項目采用的是JNDI方式配置的數據源,那么就要去tomcat安裝目錄下的\conf\server.xml文件或\conf\context.xml文件里找到如下配置(小菜只是舉個例子,里邊的配置都是隨便寫的,關鍵是找到Resource節點):

       1  <Resource name="demo"

 2    auth="Container"

 3    type="javax.sql.DataSource"

 4    maxActive="500"

 5    maxIdle="30"

 6    maxWait="5000"

 7    username="sa"

 8    password=""

 9    driverClassName="org.hsqldb.jdbcDriver"

10    url="jdbc:hsqldb:hsql://localhost/runqianDB" />
    

???????? 這里我們需要關注的有:

???????? maxActive是指最大激活連接數為500,也就是說同時最多只可以有500個數據庫連接。這里也可以理解為并發,小菜覺得500已經不少啦,畢竟數據讀完會自動釋放連接,如果您的主機配置不夠高,這里設置太多,比如什么3000,可能導致MySQL啟動失敗。

???????? maxIdle是最大空閑連接數,就算沒有使用數據庫,依然保持這么多連接,以便需要時直接用,提高效率。因為數據庫連接的創建過程相當的耗費時間。參考了很多網站,一般都是30左右,僅供參考!

???????? maxWait是最大等待時間,如果數據庫連接數不夠用,那么等待這么長時間,超過這個時間了就超時,設為-1表示無限等待。

???????? 如果您的項目采用的是JDBC配置,也就是項目中有一個properties文件,一般叫什么JDBC.properties、config.properties,具體叫什么小菜就不知道啦,然后里邊會有類似如下配置:

???????? JDBC.DriverClass=com.mysql.jdbc.Driver

???????? JDBC.Url=jdbc\:mysql\://localhost\:3306/xxx?useUnicode\=true&amp;characterEncoding\=utf8

???????? JDBC.User=xxx

???????? JDBC.Password=xxx

???????? JDBC.MaxPoolSize=500

???????? JDBC.MinPoolSize=30

???????? JDBC.WaitTime=5000

????????

???????? 這里的MaxPoolSize、MinPoolSize、WaitTime分別和上邊講的maxActive、maxIdle、maxWait對應,但這是小菜的項目,您的項目需要具體分析。。。。

????? 服務器端配置

???????? 項目配置好了之后,就要配置MySQL服務器了。

???????? 如果您的MySQL是5.0之前的版本,包括5.0,那么可以嘗試用如下方法修改MySQL最大連接數。

???????? 在linux系統中找到/usr/bin/mysqld_safe編輯它,找到mysqld啟動的那兩行,在后面加上參數 :

???????? -O max_connections=1000

???????? 用紅字特別說明:

?

???????? if test -z "$args"

? ???????? then

??? ???????? $NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking?-O max_connections=1000?>> $err_log 2>&1

????? ??? else

????? ? ?? ? ev al "$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking $args?-O max_connections=1000?>> $err_log 2>&1"

?

????????這段代碼很不好找,在下也無法說清楚它具體在哪個位置。不過建議從最后往前找會比較快。

????????重啟mysql服務:# service mysql restart

????????查看當前最大連接數: mysqladmin -uroot -p variables

????????如果您的MySQL服務器是5.1之后的版本,包括5.1,或者您用上邊的方法不行,那么可以嘗試如下方法。

??????? 在linux系統中找到/etc/my.cnf文件,在里邊的[mysqld]節點下,添加:max_connections=500即可,500就是指最大連接數,可以隨意改。例如:

????????[mysqld]

????????datadir=/home/mysql

????????socket=/var/lib/mysql/mysql.sock

????????user=mysql

????????default-character-set = utf8

????????default-collation = utf8_general_ci

????????max_connections=500

????????

???????? 這樣就搞了,重啟MySQL即可。

?

四、日志優化

?

???????? 日志的重要性不必多說,項目開發時,日志一般是直接輸出到控制臺上,方便查看。

???????? 但是項目實際發布時,就不能這樣做了,影響效率不說,我們也無法查看這些日志。

???????? 小菜的項目中用的是log4j,它有一個配置文件,叫log4j.properties,配置大致如下:

???????? log4j.rootLogger = INFO, R

???????? log4j.appender.R = org.apache.log4j.RollingFileAppender

???????? log4j.appender.R.File = /home/westjavatest/logs/ivlifelog4j.txt

???????? log4j.appender.R.MaxFileSize = 500KB

???????? log4j.appender.R.MaxBackupIndex = 1

???????? log4j.appender.R.layout = org.apache.log4j.PatternLayout

???????? log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n

?

???????? 這里我們需要的關注的有:

???????? log4j.rootLogger = INFO, R,這里的INFO指明了日志的級別,一般用INFO就可以了;R是輸出配置,名字隨便起,和下邊log4j.appender.R對應就可以了。

???????? log4j.appender.R.File指明了日志輸出路徑,注意linux下目錄的/和windows下目錄的\相反哦。

???????? log4j.appender.R.MaxFileSize是指每個日志文件的大小,這里設成了不超過500kb,一旦超過,會重新創建一個.txt日志文件。

???????? 其他參數就不那么重要了,有興趣的讀者可以自己去谷歌一下~

?

五、結束語

?

???????? 這些服務器的優化配置,小菜也是第一次接觸,花了很多時間從網上搜集而來的,因此整理一下,方便像小菜這樣的菜鳥。

???????? 這些配置,很多都是經驗數據,具體的參數需要根據您服務器的實際情況,進行一定的綜合分析、壓力測試之后,才得到的,小菜列舉的這些只是一般經驗,僅供參考。

???????? 最后祝愿大家優化順利!

?

Linux下jvm、tomcat、mysql、log4j優化配置筆記


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久不见久久见免费影院 | 国产黄网永久免费 | 国产成人免费a在线视频色戒 | 日本一区二区三区四区 | 免费一级特黄特色黄大任片 | 亚洲欧美一区二区久久香蕉 | 免费看一级黄色录像 | 在线播放免费一级毛片欧美 | 四虎影院永久免费 | 一级不卡毛片免费 | 亚洲第一页在线播放 | 日韩成人免费 | 午夜伦情电午夜伦情影院 | 久久天天躁日日躁狠狠躁 | 国产精品久久久久久吹潮 | 国产精品久久综合桃花网 | 亚洲欧洲高清 | 亚洲国产成人资源在线软件 | 欧美一区二区三区国产精品 | 成人一区二区免费中文字幕 | 97色老99久久九九爱精品 | 4hu四虎永久免在线视看 | 国产精品久久久久久久久免费hd | 狠狠躁夜夜躁人人爽天天miya | 亚洲国产中文字幕在线观看 | 97在线观看免费版 | 日本视频在线观看不卡高清免费 | 美女被羞羞视频网站在线 | 男女性高清爱潮视频免费观看 | 亚洲国产综合在线 | 国产欧美日韩免费一区二区 | 久久国产亚洲欧美日韩精品 | 中文字幕在线精品视频入口一区 | 级毛片久久久毛片精品毛片 | www.久草| 久久久久久久久综合 | 韩国女主播一区二区三区视频 | 欧美一级爱操视频 | 亚洲图片一区 | 国产精品久久久久孕妇 | 亚欧精品一区二区三区四区 |