[心得] shmctl init的問題

作者: wryyy (我是八拉)   2009-10-22 18:15:38
先說明我的環境:
硬體:AMD 3600+ x2 with 2Gb ddr2 ram
OS: CentOS 5.2 x86_64版本
pttbbs版本:不知,2009/10/21用wget抓的
狀況:依照doc/INSTALL, doc/ADVANCE, doc/FAQ裡面的說明全部安裝好後,下指令:
shmctl init
得到以下訊息:
loading uhash...
shmget: Cannot allocate memory
[shmget error] key = 4cc
errno = 2: No such file or directory
這到底是缺了什麼檔案或目錄呢?
參考ptt2的PttSrc版1106篇中scwg大貼出的man page提示,猜想或許是我自己手賤將
pttbbs.conf兩個有關shared memory的設定啟用的關係:
#define USE_HUGETLB
#define SHMALIGNEDSIZE (1048576*4)
把這兩行註解掉後重新編譯就解決了。
不過,這就讓我對HUGETLB產生興趣了,查了一下網路文件後以以下步驟實作:
1. 設定HUGETLB的分頁數為20(每一分頁大小為2MB)(數量請依照個人機器狀況調整)
# sysctl -w vm.nr_hugepages=10
2. 將bbsadm所屬group的GID 999設為可使用HUGETLB
# sysctl -w vm.hugetlb_shm_group=999
3. 將bbsadm的memlock設為unlimited,在/etc/security/limit.conf中加入一行:
bbsadm - memlock unlimited
4. 將pttbbs.conf中的:
#define USE_HUGETLB
#define SHMALIGNEDSIZE (1048576*4)
前的//去掉後重新編譯即可。重新編譯前要先make clean
小弟只是個初學者,如有謬誤請多指教。謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com