每月彙整: 2008 年 4 月

按!!假會~~開不起來了吧

先說我機器是
HP DL 360 G5 + RAID 1
我星期五要下班前……….我把kern.maxdsiz 調到4G(要給MySQL吃的)
然後重開機…機器就不理我了…
不管是single user mode or safe mode or blah blah
都開到
Trying to mount root from ufs:/dev/da0s1a
就再也不動了……………..
害我把硬碟(兩顆都拔)拔起來mount 到別台…
然後把/boot/loader.conf 加的
kern.maxdsiz=”4G”拿掉
再插回去重開
結果……………….
一開機…….他媽媽的….
HP Smart Array (沒記錯的話)
顯示說..因為我invalid 移動HD 所以….記RAID 的資料不見了…..
我進RAID 的設定看…兩顆硬碟都還在不過Logic Disk 不見了…
然後我怎麼樣找不到
按!~~真他媽的很ooxx
我後來想到…我記得好像有聽過貓哥說…
HP 的Raid 會寫資料到 硬碟 上………….
因為我mount 的那台也有做Raid 1
所以我想應該是這樣造成的吧…………
按!! 真雖…下次不敢亂拔HP 的機器了….

Tuning MySQL ..

因為被slow query 搞的很煩….網站速度一直起不來
因為Database 設計上的問題…..(幾個比較常用的Table 大蓋都差不多有70萬個Record )
且因為我Table Engine 是 MyISAM
用Rep 的話….若是crash 要修…好像很麻煩…
所以變成要用Rep 的話最好能先轉成InnoDB
不過因為我Slow Query 很多…若是我Rep Master Lock 的話
Slave 也會卡住…..
也不是完全的解決了Slow Query這問題….
所以我想最完美的解法可能是
Rep + Aging…
不過要花不少時間來整個改……
當前沒這麼多時間讓我來用這些…
所以我目前的解法是…
加Ram 然後把MySQL 的Ram 讓他吃愈多愈好…
Ref
MYSQL優化詳細介紹!

7.5.2. Tuning Server Parameters

Section 5.1.3, “System Variables”

5.1.2. Command Options

Section 5.1.5, “Status Variables”.

5.2.4. The Slow Query Log

結論就是RAM 有多少吃多少…
讓MySQL可以用的Ram 愈多愈好就沒錯了…

PS
FreeBSD 因為單一Process 預設只能吃到512MB 的Ram
所以在/boot/loader.conf 也要調一下

FreeBSD limits the size of a process to 512MB, even if you have much more RAM available on the system. So you may get an error such as this:

Out of memory (Needed 16391 bytes)

In current versions of FreeBSD (at least 4.x and greater), you may increase this limit by adding the following entries to the /boot/loader.conf file and rebooting the machine (these are not settings that can be changed at run time with the sysctl command):

kern.maxdsiz=”1073741824″ # 1GB
kern.dfldsiz=”1073741824″ # 1GB
kern.maxssiz=”134217728″ # 128MB

For older versions of FreeBSD, you must recompile your kernel to change the maximum data segment size for a process. In this case, you should look at the MAXDSIZ option in the LINT config file for more information.

注意一下…調到超過2G 要注意一下..
我調到4G 有發生慘事….
刻在另一篇..