informix虚拟段为什么急剧增加
虚拟段在这段时间内不断增加,以至于造成服务器内存不足了。请问主要有哪些情况会导致这样呢?还有,我将连接到数据库的所有session全部杀掉,虚拟段的内存还是没有释放,为啥呢? 回复 1# afliao
可以通过SHMTOTAL限制一下。具体POOL的详情可以用onstat -g mem看看,强制回收可以用onmode -F,原因我是说不清了。 数据库操作需要更多的内存,自然会向系统申请,每次申请增加一个内存段,直到onconfig指明的SHMTOTAL的限制(默认为0,即不限制,受系统限制)
可能使用onmode -F 释放未使用的数据库占用的内存。 所有session全部杀掉,虚拟段的内存是不会自动释放的。应该是有用户执行了某个大的sql出现的。 两个可能,很多新的用户连接,或者是遇到BUG了,当年遇到过。 回复 2# 3sane
如果是通过限制informix虚拟内存的使用,那后来的session会因没有多余的虚拟段内存而连不上数据库的。
onmode -F 也只能释放没有使用的虚拟段啊。现在的问题是虚拟段全部使用完了,空余为0,释放不了。 回复 3# liaosnet
onmode -F也释放不了,因为虚拟段内存都用完了,free为0。我检查了数据库对表的顺序扫描的情况,发现有个表五万多行的记录 一天要被顺序扫描20多万次,我估计跟这个有关系。后来给其增加了索引,现在虚拟段有七个,没有增加了。 回复liaosnet
onmode -F也释放不了,因为虚拟段内存都用完了,free为0。我检查了数据库对表的顺 ...
afliao 发表于 2010-11-11 11:26 http://bbs3.chinaunix.net/images/common/back.gif
。。。释放不了就只能重启数据库了~
才加7个就没内存了,你那内存比较少的说。 回复 8# liaosnet
呵呵 这7个虚拟段是重启数据库后的。重启之前达到30个左右了。不过幸好现在没有再往上增了。 你干嘛不加大onconfig中这个段的大小,生产环节老分配新的段,性能不好。
页:
[1]
2