ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:32.50KB ,
资源ID:9843364      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9843364.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级 Linux 命令精通指南第 3 部分资源管理.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级 Linux 命令精通指南第 3 部分资源管理.docx

1、高级 Linux 命令精通指南第 3 部分资源管理高级 Linux 命令精通指南,第 3 部分:资源管理 作者:Arup Nanda 2009 年 1 月发表在此部分中,了解用于监视物理组件的高级 Linux 命令Linux 系统由若干主要物理组件组成,如 CPU、内存、网卡和存储设备。要有效地管理 Linux 环境,您应该能够以合理的精度测量这些资源的各种指标 每个组件处理多少资源、是否存在瓶颈等。在本系列的其他部分中,您已经学习了处于宏级别的用于测量指标的一些命令。但在此部分中,您将了解专门用于监视物理组件的高级 Linux 命令。具体而言,您将了解以下类别的命令:组件命令内存free、v

2、mstat、mpstat、iostat、sarCPUvmstat、mpstat、iostat、sarI/Ovmstat、mpstat、iostat、sar进程ipcs、ipcrm正如您所见,某些命令出现在多个类别中。这是由于这些命令可以执行很多任务。某些命令比较适合于某些组件,例如 iostat 适合 I/O,但是您应该了解它们工作的差别并使用您更熟悉的命令。在多数情况下,单个命令可能对于了解实际发生的情况没什么用。要获取所需的信息,您应该了解多个命令。free一个常见的问题是“我的应用程序和各种服务器、用户和系统进程正在使用多少内存?”或者“现在有多少内存可用?”如果正在运行的进程使用的内存

3、大于可用 RAM,则需要将这些进程移到交换区。因此,一个补充问题是“正在使用多少交换区空间?”free 命令将回答所有这些问题。而且,一个非常有用的选项 m 可以显示可用内存(以 MB 为单位):# free -m total used free shared buffers cachedMem: 1772 1654 117 0 18 618-/+ buffers/cache: 1017 754Swap: 1983 1065 918以上输出显示系统具有 1,772 MB 的 RAM,已使用 1,654 MB,还有 117 MB 内存可用。第二行显示在物理内存中缓冲区和缓存大小的更改。第三行显示

4、交换区利用情况。要以 KB 或 GB 为单位显示以上内容,请将 -m 选项分别替换为 -k 或 -g。使用 b 选项将以字节为单位。# free -b total used free shared buffers cachedMem: 1858129920 1724039168 134090752 0 18640896 643194880-/+ buffers/cache: 1062203392 795926528Swap: 2080366592 1116721152 963645440t 选项在输出底部显示总数(物理内存和交换区的总和):# free -m -t total used fre

5、e shared buffers cachedMem: 1772 1644 127 0 16 613-/+ buffers/cache: 1014 757Swap: 1983 1065 918Total: 3756 2709 1046尽管 free 不显示百分比,但是我们可以提取并格式化输出的特定部分,将已使用的内存仅显示为总数的百分比:# free -m | grep Mem | awk print ($3 / $2)*100 98.7077这在具体数据非常重要的 shell 脚本中非常方便。例如,您可能希望在可用内存的百分比低于特定阈值时触发一个警报。同样,要发现已使用交换区空间的百分比,

6、您可以发出:free -m | grep -i Swap | awk print ($3 / $2)*100可以使用 free 查看应用程序施加的内存负载。例如,启动备份应用程序之前检查可用内存,启动之后立即检查可用内存。两者之差就是备份应用程序消耗的内存。针对 Oracle 用户的用法那么,您如何使用该命令管理运行 Oracle 环境的 Linux 服务器呢?性能问题的一个最常见原因是内存不足,从而导致系统临时将内存区域“交换”到磁盘中。某种程度的交换可能是必然的,但是交换过多则表示可用内存不足。而现在,您可以使用 free 获得可用内存信息,紧接着使用 sar 命令(稍后介绍)检查内存和交

7、换区消耗的历史趋势。如果交换区的使用是暂时的,则可能出现一次高峰,但是如果明确要经过一段时间,则应注意。持续的内存过载可能有几个明显且可能的疑点: 较大的 SGA 高于可用内存 在 PGA 上分配了大量内存 某些进程出现泄露内存的错误对于第一种情况,应确保 SGA 低于可用内存。根据经验,对 SGA 使用大约物理内存的 40%,当然,应根据具体情况定义该参数。对于第二种情况,应尝试减少查询中的大量缓冲区分配。对于第三种情况,应使用 ps 命令(在本系列的之前部分中介绍过)确定可能泄露内存的具体进程。ipcs当某个进程运行时,它会夺取“共享内存”。该进程可能拥有一个或很多个共享内存段。进程之间彼

8、此(“进程间通信”或 IPC)发送消息并使用信号。要显示有关共享内存段、IPC 消息队列以及信号的信息,可以使用一个命令:ipcs。m 选项非常受欢迎;它显示共享内存段。# ipcs -m - Shared Memory Segments -key shmid owner perms bytes nattch status 0xc4145514 2031618 oracle 660 4096 0 0x00000000 3670019 oracle 660 8388608 108 0x00000000 327684 oracle 600 196608 2 dest 0x00000000 3604

9、53 oracle 600 196608 2 dest 0x00000000 393222 oracle 600 196608 2 dest 0x00000000 425991 oracle 600 196608 2 dest 0x00000000 3702792 oracle 660 926941184 108 0x00000000 491529 oracle 600 196608 2 dest 0x49d1a288 3735562 oracle 660 140509184 108 0x00000000 557067 oracle 600 196608 2 dest 0x00000000 1

10、081356 oracle 600 196608 2 dest 0x00000000 983053 oracle 600 196608 2 dest 0x00000000 1835023 oracle 600 196608 2 dest 该输出表明服务器正在运行 Oracle 软件,显示了各种共享内存段。每个共享内存段由显示在“shmid”列下面的共享内存 ID 唯一标识。(稍后,您将看到如何使用该列值。)显然,“owner”显示内存段的所有者,“perms”列显示权限(与 unix 权限相同),“bytes”显示字节大小。-u 选项显示一个非常快速的摘要:# ipcs -mu- Shared

11、 Memory Status -segments allocated 25pages allocated 264305pages resident 101682pages swapped 100667Swap performance: 0 attempts 0 successesl 选项显示限定值(相对于当前值):# ipcs -ml - Shared Memory Limits -max number of segments = 4096max seg size (kbytes) = 907290max total shared memory (kbytes) = 13115392min s

12、eg size (bytes) = 1如果您看到当前值处于或接近限定值,则应该考虑提高限定值。可以使用 shmid 值获取具体共享内存段的详细图片。i 选项可以完成该操作。下面是查看 shmid 3702792 详细信息的方法:# ipcs -m -i 3702792 Shared memory Segment shmid=3702792uid=500 gid=502 cuid=500 cgid=502mode=0660 access_perms=0660bytes=926941184 lpid=12225 cpid=27169 nattch=113att_time=Fri Dec 19 23

13、:34:10 2008 det_time=Fri Dec 19 23:34:10 2008 change_time=Sun Dec 7 05:03:10 2008 稍后,本文将采用一个示例向您介绍如何解释以上输出。-s 显示系统中的信号:# ipcs -s - Semaphore Arrays -key semid owner perms nsems 0x313f2eb8 1146880 oracle 660 104 0x0b776504 2326529 oracle 660 154 and so on 它显示一些有价值的数据。它显示 ID 为 1146880 的信号数组具有 104 个信号,

14、另一个数组具有 154 个信号。如果您增加信号,则总值必须低于内核参数 (semmax) 定义的上限。安装 Oracle 数据库软件时,预安装的检查程序将检查 semmax 的设置。之后,当系统达到稳定状态时,您可以检查实际的利用情况,然后相应地调整内核值。针对 Oracle 用户的用法如何查看 Oracle 数据库实例使用的共享内存段?为此,请使用 oradebug 命令。首先以 sysdba 身份连接到数据库:# sqlplus / as sysdba在 SQL 中,使用 oradebug 命令,如下所示:SQL oradebug setmypidStatement processed.S

15、QL oradebug ipcInformation written to trace file.要查找跟踪文件的名称,执行以下命令:SQL oradebug TRACEFILE_NAME/opt/oracle/diag/rdbms/odba112/ODBA112/trace/ODBA112_ora_22544.trc现在,如果打开该跟踪文件,将会看到共享内存 ID。下面是该文件的节选:Area #0 Fixed Size containing Subareas 0-0 Total size 000000000014613c Minimum Subarea size 00000000 Area

16、 Subarea Shmid Stable Addr Actual Addr 0 0 17235970 0x00000020000000 0x00000020000000 Subarea size Segment size 0000000000147000 000000002c600000 Area #1 Variable Size containing Subareas 4-4 Total size 000000002bc00000 Minimum Subarea size 00400000 Area Subarea Shmid Stable Addr Actual Addr 1 4 172

17、35970 0x00000020800000 0x00000020800000 Subarea size Segment size 000000002bc00000 000000002c600000 Area #2 Redo Buffers containing Subareas 1-1 Total size 0000000000522000 Minimum Subarea size 00000000 Area Subarea Shmid Stable Addr Actual Addr 2 1 17235970 0x00000020147000 0x00000020147000 Subarea

18、 size Segment size 0000000000522000 000000002c600000. and so on . 共享内存 id 以红色粗体显示。可以使用该共享内存 ID 来获取共享内存的详细信息:# ipcs -m -i 17235970另一个有用的观察是 lpid 的值 最后一个接触共享内存段的进程的进程 ID。要展示该属性的值,使用 SQL*Plus 从另一个会话连接到该实例。# sqlplus / as sysdba在该会话中,查找服务器进程的 PID:SQL select spid from v$process 2 where addr = (select padd

19、r from v$session 3 where sid = 4 (select sid from v$mystat where rownum 2) 5 ); SPID-13224现在,针对同一共享内存段再次执行 ipcs 命令:# ipcs -m -i 17235970 Shared memory Segment shmid=17235970uid=500 gid=502 cuid=500 cgid=502mode=0660 access_perms=0660bytes=140509184 lpid=13224 cpid=27169 nattch=113att_time=Fri Dec 19

20、 23:38:09 2008 det_time=Fri Dec 19 23:38:09 2008 change_time=Sun Dec 7 05:03:10 2008注意,lpid 的值已经从原来的值 12225 更改为 13224。lpid 显示最后一个接触共享内存段的进程的 PID。该命令自身的价值不大。下一个命令 ipcrm 允许您基于输出采取操作,正如您将在下一部分所见。ipcrm既然您已经标识了共享内存和其他 IPC 指标,那么使用它们做什么呢?之前您看到过一些用法,如标识 Oracle 使用的共享内存、确保为共享内存设置了内核参数等等。另一个常见的应用是删除共享内存、IPC 消息

21、队列或信号数组。要删除某个共享内存段,注意 ipcs 命令输出中它的 shmid。然后使用 m 选项删除该段。要删除 ID 为 3735562 的段,使用:# ipcrm m 3735562这将删除该共享内存。还可以使用该命令删除信号和 IPC 消息队列(使用 s 和 q 参数)。针对 Oracle 用户的用法有时当您关闭数据库实例时,Linux 内核可能未完全清除共享内存段。留下的共享内存没有什么用处,但它会占用系统资源,从而使可用于其他进程的内存更少。这种情况下,可以检查 “oracle”用户所拥有的任何延迟共享内存段,然后删除它们,如果有这样的段,使用 ipcrm 命令。vmstatvm

22、stat 是最早用于显示所有与内存和进程相关信息的命令,调用时,该命令会持续运行并发布其信息。它有两个参数:# vmstat 是两次运行之间的时间间隔,以秒为单位。 是 vmstat 重复的次数。下面是当我们希望 vmstat 每隔 5 秒运行一次并在第 10 次运行后停止时的示例。每 5 秒之后都会输出一行并显示此时的统计信息。# vmstat 5 10 procs -memory- -swap- -io- -system- -cpu- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 1087032 132500 1526

23、0 622488 89 19 9 3 0 0 4 10 82 5 0 0 1087032 132500 15284 622464 0 0 230 151 1095 858 1 0 98 1 0 0 1087032 132484 15300 622448 0 0 317 79 1088 905 1 0 98 0 shows up to 10 times.该输出显示有关系统资源的大量信息。我们来详细介绍它们:procs显示进程数r等待运行的进程。系统上的负载越多,等待运行 CPU 周期的进程数量越多。b不可中断睡眠的进程,也称为“被阻塞”的进程。这些进程最有可能等待 I/O,但也可能等待其他事情。

24、有时,还存在另外一列,该列位于标题“w”下,显示可以运行但已经交换到交换区域中的进程数。“b”下的数值应接近于 0。如果“w”下的数值很高,可能需要更多内存。下表显示了内存指标:swpd虚拟内存或交换内存的数量(以 KB 为单位)free可用物理内存的数量(以 KB 为单位)buff用作缓冲区的内存数量(以 KB 为单位)cache用作缓存的物理内存数量(以 KB 为单位)缓冲区内存用来存储文件元数据(如 i-nodes)以及原始块设备中的数据。缓存内存用于文件数据本身。下表显示了交换活动:si将内存从磁盘交换回物理 RAM 的速率(以 KB/秒为单位)so将内存从物理 RAM 交换到磁盘的速

25、率(以 KB/秒为单位)下表显示了 I/O 活动:bi系统向块设备发送数据的速率(以块/秒为单位)bo系统从块设备中读取数据的速率(以块/秒为单位)下表显示了系统相关活动:in系统每秒接收到的中断数cs在进程空间中切换上下文的速率(以数量/秒为单位)最后这张表可能用得最多 有关 CPU 负载的信息:us显示花费在用户进程中的 CPU 百分比。Oracle 进程属于这一类。sy系统进程(如所有根进程)使用的 CPU 百分比id可用 CPU 百分比wa花费在“等待 I/O”上的百分比让我们看一看如何解释这些值。输出的第一行是自从系统重新启动以来所有指标的平均值。因此,忽略该行,因为它并不显示当前状

26、态。其他行显示实时指标。理想情况下,等待或阻塞的进程数量(位于“procs”标题下)应该为 0 或接近于 0。如果数值较高,则表示系统没有足够的资源(如 CPU、内存或 I/O)。诊断性能问题时该信息非常有用。“swap”下的数据表明交换是否过多。如果交换过多,则表明物理内存可能不足。应该减少内存需求或增加物理 RAM。“io”下的数据表示往返于磁盘的数据流。这表明正在进行的磁盘活动量,这并不一定表明存在问题。如果您看到“proc”和“b”列(正在阻塞的进程)下有较大的数值和较高的 I/O,则可能出现了严重的 I/O 争用问题。“cpu”标题下是最有用的信息。“id”列显示空闲 CPU。如果用

27、 100 减去该数值,则会得到繁忙 CPU 的百分比。还记得本系列的另一个部分中描述的 top 命令吗?该命令还显示 CPU 的空闲百分比数值。区别是:top 显示每个 CPU 的空闲百分比,而 vmstat 显示所有 CPU 的空闲百分比。vmstat 命令还显示 CPU 使用情况的划分:Linux 系统使用多少、用户进程使用多少以及等待 I/O 使用多少。通过该划分,您可以确定 CPU 消耗的组成。如果系统 CPU 负载较高,能表明正在运行某个根进程(如备份)吗?一段时间内的系统负载应该一致。如果系统显示较高的数值,请使用 top 命令确定占有 CPU 的系统进程。针对 Oracle 用户

28、的用法Oracle 进程(后台进程和服务器进程)和用户进程(sqlplus、apache 等)位于“us”下。如果该数值较高,则使用 top 来确定进程。如果“wa”列显示较高的数值,则表明 I/O 系统无法跟上读取或写入的数量。有时这可能是因为在数据库中进行大量更新,从而导致日志切换以及后续的大量存档进程。但是,如果它持续显示一个较大的数值,则表明可能存在 I/O 瓶颈。Oracle 数据库中的 I/O 瓶颈可能会造成严重的问题。与性能问题不同,慢速 I/O 可能导致控制文件写入速度缓慢,这会导致等待获取控制文件的进程加入队列。如果等待超过 900 秒且等待者是关键进程(如 LGWR),则会

29、关闭数据库实例。如果您看到很多交换,可能是 SGA 的太大,以至于物理内存容纳不下。应该减小 SGA 大小或增加物理内存。mpstat另一个用于获取 CPU 相关统计信息的有用的命令是 mpstat。下面是一个示例输出:# mpstat -P ALL 5 2Linux 2.6.9-67.ELsmp (oraclerac1) 12/20/2008 10:42:38 PM CPU %user %nice %system %iowait %irq %soft %idle intr/s10:42:43 PM all 6.89 0.00 44.76 0.10 0.10 0.10 48.05 1121.6

30、010:42:43 PM 0 9.20 0.00 49.00 0.00 0.00 0.20 41.60 413.0010:42:43 PM 1 4.60 0.00 40.60 0.00 0.20 0.20 54.60 708.40 10:42:43 PM CPU %user %nice %system %iowait %irq %soft %idle intr/s10:42:48 PM all 7.60 0.00 45.30 0.30 0.00 0.10 46.70 1195.0110:42:48 PM 0 4.19 0.00 2.20 0.40 0.00 0.00 93.21 1034.5310:42:48 PM 1 10.78 0.00 88.22 0.40 0.00 0.00 0.20 160.48 Average: CPU %user %nice %system %iowait %irq %soft %idle intr/sAverage: all 7.25 0.00 45.03 0.20 0.05 0.10 47.38 1158.34Average: 0 6.69 0.00 25.57 0.20 0.00 0.10 67.43 724.08Average: 1 7.69 0.00 64.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1