多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > Mysql Tomcat C3p0 系統性能調優個人總結

Mysql Tomcat C3p0 系統性能調優個人總結

來源:程序員人生   發布時間:2014-12-13 09:00:36 閱讀次數:3609次

系統信息

利用邏輯 就是用c3p0 到數據庫查詢數據并http返回Json數據

 

1 調優前的最初的測試結果   JMeter test result

No.

Type

Original

1000 data bigger

1

500Connection

250 query/S

63q/S
70q/S

2

1000 connections

255q/S

57q/S

65 q/S

這個數據是從程序的log 中打印出的 數據庫select語句 中得出的結果(正確與否后面會有討論)。

2 經過IOD系統打印 SQL query 的履行時間 和 tomcat 每一個request 的 響應時間,找出 系統瓶頸 是由于1個 select語句 使用了 in:

 SELECT* FROM infoobject_table where category = 'advertisement' and deleteflag=falseand (id in (select info_object_fk from timespan_table where vod_id = ? and deleteflag=false))Order By Rand() Limit

在 原來的小數據庫中  數據較少 查詢 時間 100ms 左右

在 1000個 video 的數據庫中 查詢的時間 到達 超過 1S  

先注釋掉 這個語句 ,想辦法用優化的辦法實現這個功能。

 

注釋掉 這個 select 語句后得到的測試數據(還是計算從程序的log中打印出的 數據庫select語句)Jmeter testresult

No.

Type

Original

1000 bigger

1

500Connection

250 query/S

CPU 100%
150q/S

2

1000 connections

255q/S

160q/S

160q/S

現在 的問題 是碰到 tomcat  request 160q/S  再怎樣調優 增加不了了,tomcat的內存  配置了4G  實際使用了不到 1個G ,CPU 8核心  利用率 只有10%。

 

3  發現前面的統計系統響應 性能有問題,很多時候sql 語句打印出來了,但是并沒有履行完成, 由于c3p0 連接數只有15個,都在等待數據庫連接,后來改變統計方式。

還有就是打印出 c3p0 的連接池的工作狀態

private void printDataConnections() { ComboPooledDataSource ds = (ComboPooledDataSource) DBConn.getDataSource(); StringBuffer connectionBuffer = new StringBuffer(); try { connectionBuffer.append("getMaxPoolSize=" + ds.getMaxPoolSize());// 最大連接數 connectionBuffer.append("getMinPoolSize=" + ds.getMinPoolSize());// 最小連接數 connectionBuffer.append("getNumBusyConnections=" + ds.getNumBusyConnections());// // 正在使用連接數 connectionBuffer.append("getNumIdleConnections=" + ds.getNumIdleConnections());// 空閑連接數 connectionBuffer.append("getNumConnections=" + ds.getNumConnections());//總連接數 logger.info(" connectionBuffer=" + connectionBuffer.toString()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }


后來進行mysql(默許100最大鏈接), tomcat(連接數default)tomcat 內存配置, c3p0(最大15個鏈接) 鏈接池優化。

Mysql: 在system/programdata/mysql/my.ini中配置

                        max_connections=1000

Tomcat: 配置連接數

<Connector port="8080"protocol="HTTP/1.1" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000" acceptCount="200" maxThreads="800" minThreads="600" maxProcessors="1000" minProcessors="1000" useURIValidationHack="false" redirectPort="8443" />


             配置 tomcat 運行jvm 配置

               set JAVA_OPTS=-server -Xms4400M-Xmx4400M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M-XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection-XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly-Djava.awt.headless=true

          

利用  c3p0 連接池配置:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"> <propertyname="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl"value="jdbc:mysql://192.168.4.112:3306/iod1000?useUnicode=true&characterEncoding=utf⑻"/> <propertyname="checkoutTimeout" value="60000"/> <propertyname="idleConnectionTestPeriod" value="30"/> <propertyname="initialPoolSize" value="50"/> <property name="maxPoolSize"value="800"/> <property name="minPoolSize"value="50"/> <propertyname="maxStatements" value="100"/> <propertyname="properties"> <props> <propkey="preferredTestQuery">SELECT 1</prop> <propkey="c3p0.maxIdleTime">25000</prop> <propkey="c3p0.testConnectionOnCheckout">true</prop> <propkey="user">root</prop> <prop key="password">iptv4Um8</prop> </props> </property> </bean>


查詢配置了mysql 最大連接數 1000, 配置 c3p0 連接池 800  配置 tomcat 鏈接 800 測試結果:

             CPU 8Core  12% usage

             Memmory900M/2.4G                           120q/S 

這個時候碰到的問題就是 cpu 和 內存 都沒有到達上限,但是查詢的 性能卻提升不上去了。

 

5  試用jconsole 查看tomcat   中的 線程狀態,好多線程都是  blocked on java.util.logging.console 原來是線程1直在等待寫日志被block住了。

把寫log的語句 全部注釋掉。OK  系統終究飛起來了。

現在 能到達      250q/S。

 

需要檢查的地方:

CPU 

內存

mysql最大連接數

tomcat 連接數配置

tomcat JVM 配置 重要的是內存大小

數據庫連接池配置:

程序內部的瓶頸。

 

 

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: jiujiure精品| 久久久久久国产精品免费 | 视频一区二区免费 | 国产精品视频国产永久视频 | 九九精品免视看国产成人 | 亚洲伊人久久大香线蕉啊 | 精品国产高清a毛片 | 视频免费观看在线播放高清 | 好好的日视频www | 国产精品天天看天天爽 | 国产精品视频在线观看 | 欧美一级欧美一级高清 | 欧美a级在线 | 国产aaaaaaa毛片 | 日韩欧美在线观看视频一区二区 | 欧美三级短视频 | 日本中文字幕在线观看视频 | 亚洲人成网亚洲欧洲无码 | 豆国产97在线 | 欧洲 | 亚洲免费一区二区 | 秋霞免费理论片在线观看午夜 | 欧美成人看片一区二区三区 | 伊人午夜| 色综合网亚洲精品久久 | 女性一级全黄生活片 | 亚洲资源在线播放 | 2019精品手机国产品在线 | 国产精品 第二页 | 久久中文字幕综合不卡一二区 | 免费一级欧美片在线观免看 | 国产成人亚洲综合欧美一部 | 视频在线a| 伊人网欧美 | www.视频| 精品日韩一区二区三区视频 | 亚洲一区二区三区免费视频 | 日本青草视频 | 国产精品一区二区免费 | 欧美一区二区三区网站 | 91精品久久久久久久久久 | 他添的我好湿好爽视频 |