Solaris内核参数如何高效查看?

99ANYc3cd6
预计阅读时长 9 分钟
位置: 首页 参数 正文

下面我将详细介绍如何查看 Solaris 的内核参数,并分为两种主要情况:动态查看静态查看

solaris 查看 内核参数
(图片来源网络,侵删)

使用 ndd 命令动态查看 (推荐)

ndd (Node Device Driver) 是 Solaris 中用于与设备驱动程序和内核模块交互的工具,许多网络和系统性能相关的内核参数都通过它来查看和修改,并且修改可以立即生效,无需重启。

查看 ndd 支持的设备/模块

你可以查看哪些内核模块或设备支持 ndd

ndd -h

或者查看一个特定模块的所有可用参数:

# 查看所有可用参数
ndd /dev/tcp
# 查看特定参数的值
ndd /dev/tcp tcp_conn_req_max

常用 ndd 查看示例

a) 网络相关参数 (TCP/IP 栈)

solaris 查看 内核参数
(图片来源网络,侵删)

这些是性能调优中最常查看的参数。

# 查看 TCP 连接队列最大长度
ndd /dev/tcp tcp_conn_req_max
# 查看 TCP 重传超时时间 (毫秒)
ndd /dev/tcp tcp_rexmit_interval_initial
# 查看 IP 数据包转发是否启用 (1=启用, 0=禁用)
ndd /dev/ip ip_forwarding
# 查看 UDP 检查和是否启用 (1=启用, 0=禁用)
ndd /dev/udp udp_cksum
# 查看 TCP 窗口缩放因子
ndd /dev/tcp tcp_wscale_always

b) 系统核心参数

# 查看系统最大进程数
ndd /dev/system max_nprocs
# 查看每个进程可以打开的最大文件描述符数
ndd /dev/system max_file_descriptors
# 查看共享内存最大段大小
ndd /dev/system shmsys:shminfo_shmmax

查看 /etc/system 文件中的静态参数

/etc/system 文件是 Solaris 的核心系统配置文件,在这里设置的参数通常是系统启动时从根文件系统加载的,修改后需要重启系统才能生效。

这个文件中的参数格式通常为: module_name parameter_name = value

查看 /etc/system 文件

直接使用 cat, more, lessgrep 命令来查看。

# 查看整个文件
cat /etc/system
# 使用 less 分页查看,方便浏览
less /etc/system
# 搜索特定参数,例如查找与共享内存相关的设置
grep -i shmmax /etc/system

常用 /etc/system 参数示例

a) 共享内存

# 共享内存最小段大小 (字节)
set shmsys:shminfo_shmmin = 1
# 共享内存最大段大小 (字节),例如设置为 4GB
set shmsys:shminfo_shmmax = 4294967296
# 系统中共享内存段的最大数量
set shmsys:shminfo_shmmni = 100

b) 信号量

# 每个信号量集的最大信号量数
set semsys:seminfo_semmsl = 100
# 系统中信号量集的最大数量
set semsys:seminfo_semmns = 512
# 系统中信号量的最大总数
set semsys:seminfo_semmni = 512

c) 文件描述符

# 每个进程可以打开的最大文件描述符数
set rlim_fd_max = 65536
# 系统中可以打开的文件描述符总数
set rlim_fd_cur = 65536

总结与对比

特性 ndd 命令 /etc/system 文件
作用范围 动态参数,通常与网络驱动、TCP/IP 栈相关 静态参数,涉及核心系统资源限制
生效方式 立即生效,无需重启 需要重启系统才能生效
修改方式 ndd /dev/module param_name=value 编辑 /etc/system 文件
查看方式 ndd /dev/module param_name cat /etc/systemgrep
适用场景 运行时性能调优、临时修改、故障排查 永久性配置、系统初始化设置

最佳实践

  1. 先查看,再修改:在修改任何参数之前,务必先用上述方法查看其当前值。
  2. 了解参数含义:不要随意修改不了解的参数,否则可能导致系统不稳定或性能下降,在修改前,请查阅 Oracle Solaris 的官方文档。
  3. 备份配置:在修改 /etc/system 文件前,最好先备份它。
    cp /etc/system /etc/system.bak
  4. 动态 vs 静态
    • 如果只是临时调整网络性能,优先使用 ndd
    • 如果需要永久增加系统资源限制(如最大进程数、共享内存大小),则修改 /etc/system 并计划重启。
  5. Solaris 11 及更高版本:在 Solaris 11 中,Oracle 引入了 SMF (Service Management Facility)svcadm / svccfg 来管理更多系统配置,包括一些内核参数,对于某些服务,参数可能存储在 SMF 的属性中,但对于最核心的内核参数,ndd/etc/system 仍然是主要方式。

通过结合使用 ndd 和查看 /etc/system,你就可以全面地了解和管理 Solaris 系统的内核参数了。

-- 展开阅读全文 --
头像
魅蓝metal拆机,zealer会测出什么?
« 上一篇 今天
惠普EliteBook 840拆机难不难?内部有何升级空间?
下一篇 » 58分钟前

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]