FAQ汇萃
>> solaris 专栏
>> 钱飞老师的solaris技术问答(9)-sendsig信息的含义
由 fei 发布于: 2001-03-06 14:15
问: 我的计算机上经常出现以下错误.请解释一下信息含义及原因.
sendmail[502]:NOQUEUE:SYSERR:daemon: cannot fork: Not enough memory
vmunix: sendsig: bad signal stack pid=3819, sig=11
vmunix: sigsp = 0xf7fda4d0, action = 0xef9e0, upc = 0xf0930
计算机构成: SUN4/75,Total memory 64 MB, Swap size 32 MB,SunOS 4.1.3
答: 该信息的含义为,无法生成子进程.原因是内存不够.
实际原因为swap size小于物理内存尺寸所致.
在SunOS 4.1.x上, 各个进程需要先向swap区进行物理影射,然后在装入内存执 行.因此,当为swap size小于物理内存尺寸时,将无法有效地利用内存空间.(在 Solaris 2.x上,虚拟内存尺寸为swap size加物理内存尺寸,一般不会出现上述 问题)
要解决该问题,首先应扩充swap size.可以先生成swap文件,然后再将其转换为 swap区.
(1) 生成swap文件
例如要追加生成48Mswap时,可执行以下命令先来生成swap文件.
% mkfile -v 48m /export/swap/localswap
(2) 将swap文件转换为swap区
在/etc/fstab文件中追加以下内容:
/export/swap/localswap swap swap rw 0 0
在执行以下命令:
% swapon -a
(3) 确认生成结果
% pstat -s
(钱飞/fei@come.or.jp)
|