我有一個Web應用程序,必須處理高併發性,就像100個用戶查詢相同的5個表(其中一個,返回500多行)和其他一些用戶插入在同一時間在這些表中。什麼將是一個很好的骨骼配置高併發
當用戶使用太多時,併發性太高,我的應用程序掛起,我必須重新啓動tomcat。我在日誌中找不到多少東西。當我執行「顯示進程列表」時在MySQL中,有針對每個連接的過程,其中大部分是與狀態「查詢」 ...應用程序掛起之前,一個過程一個,進入「睡眠」狀態,直到所有的過程有這樣的狀態和應用程序掛起。
這是非常難以診斷髮生了什麼......我想更好地同步的代碼,沒有任何成功...好,我在這裏要求的意見,如果我正在使用一個很好的bonecp在這樣的環境中使用的配置:
<property name="bonecp.idleMaxAgeInMinutes">10</property>
<property name="bonecp.maxConnectionAgeInSeconds">3000</property>
<property name="bonecp.idleConnectionTestPeriodInMinutes">5</property>
<property name="bonecp.connectionTestStatement">/* ping */ SELECT 1</property>
<property name="bonecp.partitionCount">2</property>
<property name="bonecp.acquireIncrement">2</property>
<property name="bonecp.maxConnectionsPerPartition">12</property>
<property name="bonecp.minConnectionsPerPartition">5</property>
<property name="bonecp.statementsCacheSize">50</property>
<property name="bonecp.releaseHelperThreads">3</property>
按我的MySQL配置,我使用的是默認的一切,除了這二:
autocommit = 0
innodb_thread_concurrency = 8
(服務器有3個CPU和1盤)
你們會建議我改變一些事情嗎?謝謝!
謝謝你的分享 –