我试图执行ps -ef
或top
但它们没有输出进程列表并且正在等待某些东西
vmstat 99% idle CPU
。
操作系统 Solaris 8。硬件 Sun V440。4 CPU 16 G RAM。交换 4 Gb。
尝试执行命令几次后,我再次打开了会话。
命令ps -ef|wc -l
显示结果为672,共计38-42个进程正常。服务器已重启。
内核中需要增加哪些参数才能使服务器在有大量进程的情况下稳定工作?
/etc/system
set rlim_fd_cur=1024
更新 1 问题出在文件描述符数量较少(默认为 1024)上。
set rlim_fd_max=4096
答案1
添加以下行/etc/system
并重新启动
set pidmax=60000
set maxusers = 4096
set maxuprc = 50000
set max_nprocs = 50000
最大PID值- 指定最大可能进程 ID 的值。适用于 Solaris 8 及更高版本。[范围从 266 到 999999,默认值为 30000]
最大用户数- 系统上的最大进程数,系统中保存的配额结构数。目录名称查找缓存 (DNLC) 的大小。[范围从 1 到 4096,默认值:内存量(以 MB 为单位)和 2048 中的较小者]
最大上皮细胞- 指定任何一个用户可以在系统上创建的最大进程数 [范围从 1 到 max_nprocs - reserved_procs,默认为 max_nprocs - reserved_procs]
保留进程- 指定在进程表中为 UID 为 root (0) 的进程保留的系统进程槽数。[范围从 5 到 MAXINT,默认值为 5]
最大进程数- 指定系统上可创建的最大进程数。包括系统进程和用户进程。/etc/system 中指定的任何值都用于计算 maxuprc。[范围从 266 到 maxpid 的值,默认值为 10 + (16 x maxusers)]
请参阅 Solaris 8 官方文档中有关此参数的信息docs.oracle.com。