Pages

2011年10月19日 星期三

Apache Tomcat 6 的記憶體配置 (效能調整)

Tomcat Server 預設可使用的記憶體為 128M,

若有大量網頁需求時, 會因記憶體太少, 而導致 Tomcat 當掉無法運作,

所以, 若要應付大量網頁的需求,需增加JVM的記憶體大小如下:



First Calculate the number of threads you can create

(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads

Example:

For Java 1.5 you will get the following results assuming that the OS reserves about 120MB:

1.5GB allocated to JVM: (2GB-1.5Gb-120MB)/(1MB) = ~380 threads

1.0GB allocated to JVM: (2GB-1.0Gb-120MB)/(1MB) = ~880 threads





Your Java Options Example: 

-Xms 512m
-Xmx 1024m
-Xss256k
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=128m 



另外一種方法,利用指令執行



於cmd下進入/bin
輸入 “tomcat6 //US//Tomcat6 –JvmMs 512 –jvmMx1024”
這兩個數值分別是最大與最小的heap size


如果是安裝是使用Windows服務帶起Tomcat,記得去註冊檔裡面修改參數

2011年10月18日 星期二

MS-SQL Server Log 檔清理方式


最近在刪除大筆資料時後發現,資料庫的LOG.LDF檔案會隨著刪除的比數增加,真是掰思不得其解。

於是上網尋找解決方案,總共有兩種。

1. 刪除法

第一步: 執行SQL語法,卸載資料庫:  
EXEC   sp_detach_db   @dbname   =   'MYDBNAME'

第二步: 刪除MYDBNAME_Log.LDF

第三步: 掛載SQL語法:
EXEC   sp_attach_single_file_db   @dbname   =   'MYDBNAME',   @physname   =   'C:\database\MYDBNAME_Data.MDF'

執行結果:
檔案啟動錯誤。實體檔案名稱 "C:\database\MYDBNAME_Log.LDF" 可能不正確。
已建立新記錄檔 'C:\database\MYDBNAME_log.LDF'。


2. 壓縮法

第一步: SP_HELPDB 可顯示資料庫資訊, 而資料庫的分頁名稱也會在裡面顯示出來
SP_HELPDB MYDBNAME


第二步: 備份資料庫, 但不備份記錄檔
BACKUP LOG MYDBNAME WITH NO_LOG

第三步: 備份記錄檔
BACKUP LOG db_name WITH TRUNCATE_ONLY

第四步: 使用 SHRINKFILE 把交易記錄檔縮小, 以 MB 為單位
DBCC SHRINKFILE(MYDBNAME_log, 100)

以上, 就可以看到磁碟空間變大, 記錄檔變小了 ~