[心得] 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