查询t4-1服务器的CPU内核数量,最直接的方法是在Solaris命令行执行psrinfo -pv,它会一次性列出所有物理核和虚拟核的编号、状态和主频,普通运维环境三秒钟就能出结果。
T4-1是Oracle SPARC家族的老牌单路服务器,不少机房里还跑着它的业务,厂商早已停止主动更新,但设备本身皮实,很多单位拿它当关键业务节点,日常维护中,查CPU内核既是为了核对配置,也经常是为了确认某个应用能不能跑得动,下面按实用优先级把方法拆开讲,从最常用到最详细,挨个过一遍。
psrinfo命令查看CPU内核数量
psrinfo是Solaris系统里查处理器信息的首选命令,适用于OpenBoot和ILOM都能正常引导的阶段,T4-1服务器上跑的通常是Solaris 10或11,这两个版本都内置该命令,不需要额外安装软件包。
psrinfo -pv输出怎么读
在shell里敲psrinfo -pv,输出会分两大块,前半部分是物理处理器信息,能看到CPU主频、缓存大小、厂商信息;后半部分是逻辑处理器列表,以“The physical processor has X virtual processors”开头,后面跟着一堆“UltraSPARC-T4”字样的行,每一行带一个编号,比如0、1、2一直到63,T4-1标配一颗SPARC T4芯片,每核8线程,8核就是64个逻辑处理器,这是行业共识。
很多老运维只看前半部分“physical processor has 8 virtual processors”这句话,代表这台机器有8个物理内核,注意这里的virtual processors指的不是虚拟机vCPU,而是硬件线程。
只想要数字怎么办
如果只想拿一个干净的数字写脚本或做记录,有两招:
- 查物理核数:执行 psrinfo -pv | grep -c “physical processor”,返回的数字就是物理CPU路数,T4-1一般显示1。
- 查逻辑线程数:执行 psrinfo -v | grep -c “processor”,返回64表示8核16线程(T4架构下每核8线程,所以8×8=64)。
这里有个容易混淆的点:psrinfo -p返回的是物理CPU插槽数,T4-1只有1个插槽,所以返回1,想从逻辑处理器数量倒推物理核数,得先确认T4的每核线程数,T4处理器每核8线程,这是SPARC T系列的一致性设计,可以在CPU型号规格里直接找到。
kstat命令查CPU内核详细状态
psrinfo偏静态,只反映当前内核是否在线,想查每个内核的温度、运行状态、故障排查记录,kstat更合适,在T4-1服务器的Solaris系统里,kstat从/usr/bin路径调用即可。
用kstat统计物理核总数
执行下面的命令,能看到当前系统里所有CPU内核的chip_id和core_id:
kstat -m cpu_info | grep -E "chip_id|core_id"
chip_id是物理CPU插槽编号,T4-1通常只有一个chip_id,core_id是每个芯片内部的物理内核编号,从0数到7,统计core_id去重后的数量,就是这颗CPU的物理内核总数,多次执行kstat如果发现chip_id出现多个,说明机器要么加装了第二颗CPU,要么就是ILOM配置里开了双路逻辑视图,后一种情况在T4-1上比较少见。
每内核线程数怎么看
kstat的输出里没有直接写“每核线程数”,但可以通过逻辑处理器总数除以物理核数得到,先跑一句统计逻辑处理器数量:
kstat -m cpu_info | grep -c instance
结果通常是64,除以core_id统计出来的8,得到每核8线程,这个数字和SPARC T4公开规格说明一致,Intel的x86服务器只有每核2线程,写惯了Linux监控脚本的人常被这个差距震到。
prtdiag查看CPU内核硬件信息
prtdiag在T4-1服务器上能直接读取硬件拓扑结构,比psrinfo更贴近底层,执行prtdiag -v后,输出里有一段“CPU”表格,列名包括CPU、Freq、Status这几种,每一行是一个物理内核,标注了MHz频率和当前状态。
这段表格比psrinfo好懂,状态列直接写online或offline,如果看到offline,排障思路就要往故障隔离方向走,先检查ILOM告警日志,再确认是不是之前做过cpu_unconfigure操作。
prtdiag输出顶部会列出Firmware version和Platform version,这两个版本号和CPU内核数量没有直接关系,但比对新旧时会用到,查内核数量时容易被这串版本号带偏,忽略正文表格。
t4-1服务器CPU信息查询的常见场景
查CPU内核不只是为了看一眼数字,不同场景下用的命令侧重点完全不同,知道场景再选命令,效率更高。
排查性能问题时怎么查
应用变卡或者响应时间暴涨,首先怀疑CPU是否被占满时,执行prstat看实时负载,再配合psrinfo确认内核数是否正常,具体做法是:
- 先跑prstat -s cpu,观察前几个进程的CPU占用率。
- 如果某个进程占用超过单核100%,说明它是单线程瓶颈,得看有没有多核并行版本。
- 再跑psrinfo -v | grep “on-line”统计在线内核数,对比总内核数,确认没有内核掉线。
这套流程在Solaris 10上同样管用,业内专家指出,遇到性能问题先数CPU再调应用参数,比一上来就加内存靠谱,尤其是SPARC架构下应用许可按核收费,少一个核的授权能省成本但也会留下性能隐患。
装机前怎么快速确认
给T4-1安装Oracle数据库或WebLogic前,得先确认CPU内核数满足软件许可要求,这时直接在root用户下执行:
/usr/sbin/psrinfo -pv
看输出里的“physical processor has N virtual processors”,把N除以8就是物理核数,无论数据库还是中间件,安装包内集成的检测脚本都默认认这个数字,不要拿/proc/cpuinfo去骗它,根本读不到。
t4-1和x86服务器CPU查询的区别
很多运维同时管过浪潮或Dell的x86服务器,到了T4-1上习惯性先找/proc/cpuinfo,结果发现文件不存在,就懵了,这是两种系统完全不同的思路。
命令体系完全不同
x86服务器上的CentOS或Ubuntu,查CPU内核用lscpu、cat /proc/cpuinfo,一套Linux哲学,T4-1跑的是Solaris,/proc目录结构简单得多,cpuinfo根本不在那,查CPU内核只有两条正路:psrinfo查逻辑视图,kstat查内核统计,刚接触Solaris的人常拿这两条命令和Linux对比,但需要明确认识到它们没有对应关系。
查询结果的解读逻辑不同
x86看“CPU(s)“和“Core(s) per socket”是两行分开的数据,T4-1的psrinfo输出则是一整段话,没有拆成字段,解读时要把“physical processor has 8 virtual processors”当成核心依据,先确认“8”是物理核,再从型号SPARC T4查每核线程数,多数情况下,这一步会让第一次接触SPARC的人愣住,因为T4每核线程数是8,普通x86给不了这么高的并发线程密度,如果拿Linux习惯硬套,很容易把64个逻辑处理器误认为64核。
查CPU内核时容易踩的坑
T4-1服务器年头长,系统里残留着不同时期的老配置,查内核时有些坑得绕开。
混用域配置影响判断
T4-1支持LDom逻辑域,如果在ILOM里配置过多个域,每个域看到的psrinfo输出都只有自己那份内核数,加起来才会等于物理总数,单独在一个域里查到8核,不代表整台机器只有8核,排查时先到主域或控制域跑ldm list看当前域分配情况,再下结论。
物理核和逻辑核混淆
PSRINFO输出里的“virtual processor”很容易被误读成“虚拟化CPU”,这个叫法指的是硬件线程,不是LDom虚拟出来的CPU,明确区分这一点,写监控脚本时才不会把64个逻辑处理器当成64个CPU内核上报,闹出笑话。
系统日志里数字不统一
dmesg启动日志里会打印一行带“cpu”和“core”的信息,但T4-1的OpenBoot固件在打印CPU信息时扇区编号从1开始,psrinfo从0开始,同一个物理内核,日志里写core5,psrinfo里写4,对照时记住这个偏移量,少走一次冤枉路。
Q&A:t4-1服务器查看CPU内核常见问题
t4-1服务器怎么查cpu内核是不是有损坏的?
执行psrinfo -v,逐行检查每个虚拟处理器后面的状态字段是on-line还是off-line,如果存在off-line,再用prtdiag -v对照物理内核编号,确认是否由故障隔离引发,受损内核通常也伴随ILOM里的Fault Management告警,通过fmdump -eV可查看具体故障记录。
系统里查到32个逻辑处理器,正常吗?
不正常,SPARC T4每核8线程,8核对应64个逻辑处理器,如果查到32个,要么当前LDom只分了一半的虚拟CPU给这个域,要么之前有人用psrset命令做了处理器绑定限制,先执行ldm list确认域的资源分配,再执行psrinfo -v检查有没有被psrset圈禁,持续只有32个逻辑处理器的T4-1,建议对比ILOM里的硬件配置页面,确认有没有做过降级配置。
执行psrinfo报错说没有权限怎么办?
psrinfo需要root权限或拥有processor-info安全配置文件,普通用户执行会提示权限不足,切换到root用户,或者用pfexec /usr/sbin/psrinfo -pv绕过权限限制,Solaris 11下还可以通过rolemod给运维账号添加Processor Management权限,避免每次都切root。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/784307.html


