afliao 发表于 2010-11-10 15:57

informix虚拟段为什么急剧增加

虚拟段在这段时间内不断增加,以至于造成服务器内存不足了。请问主要有哪些情况会导致这样呢?
还有,我将连接到数据库的所有session全部杀掉,虚拟段的内存还是没有释放,为啥呢?

3sane 发表于 2010-11-10 16:58

回复 1# afliao


    可以通过SHMTOTAL限制一下。具体POOL的详情可以用onstat -g mem看看,强制回收可以用onmode -F,原因我是说不清了。

liaosnet 发表于 2010-11-10 17:07

数据库操作需要更多的内存,自然会向系统申请,每次申请增加一个内存段,直到onconfig指明的SHMTOTAL的限制(默认为0,即不限制,受系统限制)

可能使用onmode -F 释放未使用的数据库占用的内存。

Hendane 发表于 2010-11-10 18:42

所有session全部杀掉,虚拟段的内存是不会自动释放的。应该是有用户执行了某个大的sql出现的。

wolfop 发表于 2010-11-11 10:31

两个可能,很多新的用户连接,或者是遇到BUG了,当年遇到过。

afliao 发表于 2010-11-11 11:21

回复 2# 3sane


    如果是通过限制informix虚拟内存的使用,那后来的session会因没有多余的虚拟段内存而连不上数据库的。
onmode -F 也只能释放没有使用的虚拟段啊。现在的问题是虚拟段全部使用完了,空余为0,释放不了。

afliao 发表于 2010-11-11 11:26

回复 3# liaosnet


    onmode -F也释放不了,因为虚拟段内存都用完了,free为0。我检查了数据库对表的顺序扫描的情况,发现有个表五万多行的记录 一天要被顺序扫描20多万次,我估计跟这个有关系。后来给其增加了索引,现在虚拟段有七个,没有增加了。

liaosnet 发表于 2010-11-11 11:41

回复liaosnet


    onmode -F也释放不了,因为虚拟段内存都用完了,free为0。我检查了数据库对表的顺 ...
afliao 发表于 2010-11-11 11:26 http://bbs3.chinaunix.net/images/common/back.gif


    。。。释放不了就只能重启数据库了~
才加7个就没内存了,你那内存比较少的说。

afliao 发表于 2010-11-11 13:10

回复 8# liaosnet


    呵呵 这7个虚拟段是重启数据库后的。重启之前达到30个左右了。不过幸好现在没有再往上增了。

wolfop 发表于 2010-11-11 14:17

你干嘛不加大onconfig中这个段的大小,生产环节老分配新的段,性能不好。
页: [1] 2
查看完整版本: informix虚拟段为什么急剧增加