从计算机或网络中获取良好性能是系统管理的重要部分。本章概述与管理计算机系统的性能有关的一些因素。
以下是本章中概述信息的列表。
本节介绍 Oracle Solaris 发行版在管理系统性能方面新增或更改的功能。有关新增功能的完整列表以及 Oracle Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》。
Oracle Solaris 10:/proc 文件系统已得到增强,目前在 /proc/pic/path 目录中包含文件名信息。pfiles 使用此信息显示进程中每个文件的文件名。这一更改使用户能以全新的方式洞察进程的行为。有关更多信息,请参见如何显示有关进程的信息和 proc(1) 手册页。
Oracle Solaris 10:CPU 性能计数器 (CPU Performance Counter, CPC) 系统进行了更新,从而能够更好地访问运行 Oracle Solaris OS 的 SPARC 和 x86 平台中提供的性能分析功能。
CPC 命令 cpustat 和 cputrack 增强了用于指定 CPU 信息的命令行语法。例如,在以前的 Oracle Solaris OS 版本中,您需要指定两个计数器。现在,这两个命令的配置都允许您仅指定一个计数器,如以下示例中所示:
# cputrack -c pic0=Cycle_cnt ls -d . time lwp event pic0 pic1 . 0.034 1 exit 841167 |
对于简单的测量,您甚至可以省略计数器配置,如以下示例中所示:
# cputrack -c Cycle_cnt ls -d . time lwp event pic0 pic1 . 0.016 1 exit 850736 |
有关使用 cpustat 命令的更多信息,请参见 cpustat(1M) 手册页。有关使用 cputrack 命令的更多信息,请参见 cputrack(1) 手册页。
系统性能任务 |
更多信息 |
---|---|
管理进程 | |
监视系统性能 | |
更改可调参数 | |
管理系统性能任务 |
《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的第 2 章 “项目和任务(概述)” |
使用 FX 和 FS 调度程序管理进程 |
《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的第 8 章 “公平份额调度器(概述)” |
计算机系统的性能取决于该系统使用和分配其资源的方式。定期监视系统的性能,以便了解系统在正常情况下的行为。应当明确了解预期情况,并能够在出现问题时进行识别。
下表介绍了影响性能的系统资源。
系统资源 |
说明 |
---|---|
中央处理器 (Central processing unit, CPU) |
CPU 通过从内存中提取并执行指令来对指令进行处理。 |
输入/输出 (Input/Output, I/O) 设备 |
I/O 设备可向计算机传入信息,并可从中传出信息。此类设备可能是终端和键盘、磁盘驱动器或打印机。 |
内存 |
物理(或主)内存是系统中的随机访问存储器 (Random Access Memory, RAM) 量。 |
第 13 章对显示有关系统活动和性能统计信息的工具进行了介绍。
术语 |
说明 |
---|---|
Process(进程) |
任何系统活动或作业。每次引导系统、执行命令或启动应用程序时,系统都会激活一个或多个进程。 |
Lightweight Process, LWP(轻量级进程) |
虚拟 CPU 或执行资源。LWP 由内核预定,以根据其预定类和优先级来使用可用的 CPU 资源。LWP 包括一个内核线程和一个 LWP。内核线程包含必须始终位于内存中的信息。LWP 包含可交换的信息。 |
Application thread(应用程序线程) |
具有单独栈的一系列指令,这些指令可在用户的地址空间中独立执行。可在 LWP 顶部复用应用程序线程。 |
一个进程可以由多个 LWP 和多个应用程序线程组成。内核预定内核线程结构,该结构是 SunOS 环境中的预定实体。下表介绍了各种进程结构。
表 11–2 进程结构
结构 |
说明 |
---|---|
proc |
包含与整个进程有关的信息,该信息必须始终位于主内存中 |
kthread |
包含与 LWP 有关的信息,该信息必须始终位于主内存中 |
user |
包含可交换的“每进程”信息 |
klwp |
包含可交换的“每 LWP 进程”信息 |
下图显示了这些进程结构之间的关系。
进程中的所有线程都可以访问大多数进程资源。几乎所有进程虚拟内存都是共享的。一个线程对共享数据的更改可供进程中的其他线程使用。
计算机运行时,操作系统中的计数器会增加,以跟踪各种系统活动。
跟踪的系统活动如下所示:
中央处理器 (Central Processing Unit, CPU) 使用率
缓冲区使用情况
磁盘和磁带输入/输出 (Input/Output, I/O) 活动
终端设备活动
系统调用活动
上下文切换
文件访问
队列活动
内核表
进程间通信
分页
可用内存和交换空间
内核内存分配 (Kernel Memory Allocation, KMA)
Oracle Solaris 软件提供了多种工具,以帮助您跟踪系统的执行情况。下表介绍了这些工具。
表 11–3 性能监视工具
命令 |
说明 |
更多信息 |
---|---|---|
cpustat 和 cputrack 命令 |
使用 CPU 性能计数器监视系统或进程的性能。 | |
netstat 和 nfsstat 命令 |
显示有关网络性能的信息。 | |
ps 和 prstat 命令 |
显示有关活动进程的信息。 | |
sar 和 sadc 命令 |
收集并报告系统活动数据。 | |
Sun Enterprise SyMON |
收集有关 Sun 的企业级系统的系统活动数据。 |
《Sun Enterprise SyMON 2.0.1 Software User's Guide》 |
swap 命令 |
显示有关系统中的可用交换空间的信息。 | |
vmstat 和 iostat 命令 |
汇总系统活动数据,如虚拟内存统计信息、磁盘使用情况和 CPU 活动。 | |
cputrack 和 cpustat 命令 |
协助访问微处理器提供的硬件性能计数器功能。 |
cputrack(1) 和 cpustat(1M) 手册页 |
kstat 和 mpstat 命令 |
检查系统中可用的内核统计信息或 kstats,并报告与命令行上指定的条件匹配的统计信息。mpstat 命令以表格形式报告处理器统计信息。 |
kstat(1M) 和 mpstat(1M) 手册页 |