2013年5月27日 星期一

Redmine 效能改進

在公司的虛擬機上安裝的Bitnami Redmine stack一直在新增與更新issue時會有等待很長時間的問題。在搜尋了一下,研究了一下。有以下兩種解法,此兩種可同時搭配:

  • Phusion Passenger module的問題
  • email send的問題
    •  此問題是因為Redmine預設使用同步的email發送機制,所以當連線mail server需要時間較久或連不上時,就會導致整個回應變慢。解決方法就是在configuration.yml裡將原本的:smtp改為async_smtp即可。可參考:Asynchronous Email Delivery

以上作法在修改後都必須重新啟動Redmine

2013年4月22日 星期一

在Linux上啟用Tomcat JMX Remote之二三事

對於Tomcat要啟動JMX Remote的功能,只要遵照官網說明,在catalina.sh or catalina.bat設定系統參數就可以。
不過,在Linux上在啟用就麻煩多了。首先,在linux上可能無法正確的bind到正確的ip,所以如果發現設定後無法連上JMX MBean,就在catalina.sh中,多加一個系統參數
-Djava.rmi.server.hostname=<正確的host ip>
此處的ip不可為localhost或是127.0.0.1
如果Linux是有開防火牆的話,就會更麻煩。因為JMX預設的情況是會使用一個固定的port作為registry用,另外會再使用一個隨機的port作為service通訊用。registry用的port,可以透過系統參數指定,但是service通訊用的卻不行,所以在此情況下,是無法開通防火牆的。所幸,Tomcat有提供一個元件可以來設定。到Tomcat下載頁面下載Tomcat JMX Remote jar,並放到lib資料夾中,然後修改conf/server.xml,加入以下內容
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
,其中rmiRegistryPortPlatform就是指registry port, 而rmiServerPortPlatform就是指真正service通訊用的port

只要將這兩個port在防火牆中開通,就可以從外部來監控Tomcat了。