免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3519 | 回复: 7
打印 上一主题 下一主题

一个Sybase使用内存的例子 [复制链接]

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-04 10:39 |只看该作者 |倒序浏览
最近和论坛上的一些朋友讨论ASE内存的使用,现在贴上我测试的一个例子,可能更容易说清楚问题。
环境 vmware 下的linux 1CPU 320M内存,shmmax 256M , Sybase 12.53

ASE的配置
max memory 是131072,(256M)
allocate max shared memory=0
default data cache 80M
procedure cache size 3271 (6M)
total physical memory 63493 =124M 应该是data cache cache的值80+ procedure cache size 6M +其他系统的开销。

从这个配置看从 dafault data cache 还能增加256-124=120M
sp_configure "default data cache","200M"之后
total cache size 218M
total physical memory 131072=256M

当allocate max shared memory 为0 (缺省值)时候,ASE并不直接获取max memory 所设定的值,而是根据配置的各项需要内存的参数值想OS申请内存,从 total physical memory 可以看到,目前ASE从OS一共获得了多少内存。

由于在linux系统中,ASE能获得的最大内存受到操作系统SHMMAX值的限制,而我的测试环境中这个值是256M,我们来修改一下max memory将其值超过256M看一下。
sp_configure "max memory",153600
这个时候,无论是修改这个参数,还是重启ASE都是没有问题的。虽然理论上ASE能够使用的最大内存已经超过了操作系统SHMMAX参数的限制,但由于allocate max shared memory 配置的是0 ,仅当需要内存的时候才会想OS申请内存;这个时候我在ASE中各项需要内存的参数总值没有超过256M,所以没有任何的问题。但需要注意的是,此时的max memory设置的值仅仅是一个假象,并不代表你一定能使用它。

增加dafalut data cache的值,sp_cacheconfig "default data cache","240M"
修改是能成功,但重启ASE的时候,报错
kernel os_create_region:can'n allocate 308498432 bytes
kernel  kbcreate:couldn't create kernel region。
明显不能获取内存了。
或者在保持 default data cache的大小不变的情况下,将allocate max shared memory的值改成1,重启,也无法成功,同样报不能获得内存。

这个测试说明虽然max memory的值能设置的超过SHMMAX,但实际ASE的内存使用并无法超过这个参数的设置。

回到开始的参数:
max memory 256M,allocate max shared memory =0
defalut data cache 80M
执行sp_cacheconfig "default data cache","240M",会显示
The current 'max memory' value '131072,is not sufficient to change the size of cache 'default data cache' to '240M'(245760KB).'max memory'should be greater than 'total logical memory' '150636' required for the configation.

这个错误显示当前的max memory 值小了,不足以扩展default data cache到240M,max memory 至少需要150636 (294M)

[ 本帖最后由 chuxu 于 2008-12-4 11:29 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-12-04 11:11 |只看该作者
多谢版主了

论坛徽章:
0
3 [报告]
发表于 2008-12-04 14:17 |只看该作者
呵呵 貌似lz 的说法有点问题,


shmmax内核参数定义单个共享内存段的最大值,如果该参数设置小于max memory设置,那么 sybase 使用的内存段就会被分配多个共享内存段

论坛徽章:
0
4 [报告]
发表于 2008-12-04 14:21 |只看该作者
增加dafalut data cache的值,sp_cacheconfig "default data cache","240M"
修改是能成功,但重启ASE的时候,报错
kernel os_create_region:can'n allocate 308498432 bytes
kernel  kbcreate:couldn't create kernel region。
明显不能获取内存了。
或者在保持 default data cache的大小不变的情况下,将allocate max shared memory的值改成1,重启,也无法成功,同样报不能获得内存。



这段应该说明 default data cache不能达到 240M 是因为总内存减掉其他部分用掉的内存后,不足 240M ,并非
default data cache 不能达到 shmmax的大小

论坛徽章:
0
5 [报告]
发表于 2008-12-04 15:18 |只看该作者
ipcs命令查看此设置下共享内存的分配

linux 下:
# ipcs -sa

aix 下
# ipcs -sa
IPC status from /dev/mem as of Thu Dec  4 15:24:16 BEIST 2008
T        ID     KEY        MODE       OWNER    GROUP  CREATOR   CGROUP NSEMS   OTIME    CTIME
Semaphores:
s    262144 0x580008d3 --ra-ra-ra-     root   system     root   system     1 12:34:37 12:34:37
s         1 0x440008d3 --ra-ra-ra-     root   system     root   system     2 12:34:37 12:34:37
s    131074 0x01002859 --ra-------     root   system     root   system     1 14:38:04 12:35:31
s         3 0x620028f1 --ra-r--r--     root   system     root   system     1 12:34:56 12:34:55
s         4 0xe4663d62 --ra-ra-ra-   imnadm   imnadm   imnadm   imnadm     2 12:35:43 12:35:40
s         5 0xffffffff --ra-ra-ra-   imnadm   imnadm   imnadm   imnadm     2 12:35:43 12:35:40
s         6 0xffffffff --ra-ra-ra-   imnadm   imnadm   imnadm   imnadm     2 no-entry 12:35:40
s    131080 0x66009261 --ra-ra-r--     root   system     root   system     1 12:35:44 12:35:44

使用pmap可以看到每个共享内存段的地址空间

#pmap pid

[ 本帖最后由 zhangyh123 于 2008-12-4 15:20 编辑 ]

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
6 [报告]
发表于 2008-12-04 15:20 |只看该作者
在保持default data cache 为200M的情况下,将allocate max shared memory改为1,之后也无法启动?应该能说明问题了吧?

论坛徽章:
4
2015年亚洲杯之阿联酋
日期:2015-03-10 10:32:022015年亚洲杯之阿曼
日期:2015-03-10 14:53:222015亚冠之水原三星
日期:2015-07-18 15:40:262015亚冠之塔什干棉农
日期:2015-07-27 20:52:05
7 [报告]
发表于 2008-12-04 17:36 |只看该作者
5楼的兄弟:

我记得看share memory好象应该是ipcs -ma

论坛徽章:
33
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
8 [报告]
发表于 2008-12-05 11:00 |只看该作者
这种问题在实际应用过程中确实存在,但解决办法好像不是全都管用!







http://eblog.cersp.com/UploadFiles/2007-5/59797326.swf
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP