收藏 分享(赏)

Linux性能调优指南.pdf

上传人:weiwoduzun 文档编号:3814469 上传时间:2018-11-19 格式:PDF 页数:152 大小:7.92MB
下载 相关 举报
Linux性能调优指南.pdf_第1页
第1页 / 共152页
Linux性能调优指南.pdf_第2页
第2页 / 共152页
Linux性能调优指南.pdf_第3页
第3页 / 共152页
Linux性能调优指南.pdf_第4页
第4页 / 共152页
Linux性能调优指南.pdf_第5页
第5页 / 共152页
点击查看更多>>
资源描述

1、1 .11 .21 .2 .11 .2 .21 .2 .31 .2 .41 .2 .51 .2 .61 .31 .3 .11 .3 .21 .3 .31 .3 .41 .41 .4 .11 .4 .21 .4 .31 .4 .41 .4 .51 .51 .5 .11 .5 .21 .5 .31 .5 .41 .5 .51 .5 .61 .5 .7目 錄序0 1 .理 解 L in u x操 作 系 统1 .1 .L in u x进 程 管 理1 .2 .L in u x内 存 体 系1 .3 .L in u x文 件 系 统1 .4 .磁 盘 IO子 系 统1 .5 .网 络 子 系 统1 .

2、6 .理 解 L in u x性 能 指 标0 2 .监 控 和 压 测 工 具2 .1 .介 绍2 .2 .工 具 功 能 概 述2 .3 .监 控 工 具2 .4 .压 测 工 具0 3 .分 析 性 能 瓶 颈3 .1 .发 现 瓶 颈3 .2 .CPU瓶 颈3 .3 .内 存 瓶 颈3 .4 .磁 盘 瓶 颈3 .5 .网 络 瓶 颈0 4 .系 统 调 优4 .1 .优 化 原 则4 .2 .安 装 考 量4 .3 .调 整 内 核 参 数4 .4 .优 化 处 理 器 子 系 统4 .5 .优 化 虚 拟 内 存 子 系 统4 .6 .优 化 磁 盘 子 系 统4 .7 .优 化

3、网 络 子 系 统1序L in u x是 一 个 由 全 世 界 人 们 开 发 的 开 源 操 作 系 统 。 源 代 码 可 以 自 由 获 取 , 并 且 在 GPL (GNUGe n e ra l Pu b lic L ice n se )协 议 下 自 由 使 用 。 像 Re d Ha t和 No ve ll这 样 的 公 司 可 以 定 制 各 种 的L in u x发 行 版 本 给 用 户 使 用 。 桌 面 版 本 L in u x大 多 能 够 从 网 络 上 免 费 下 载 , 而 服 务 器 版 可 能 需 要付 费 购 买 才 能 使 用 。在 过 去 的 这 些

4、年 里 , L in u x渗 透 进 了 许 多 公 司 的 数 据 中 心 , 并 且 在 科 学 界 和 商 业 界 都 大 受 欢迎 。 今 天 , L in u x已 经 是 最 通 用 的 操 作 系 统 , L in u x无 处 不 在 , 如 防 火 墙 、 电 话 和 大 型 机 。 自 然的 , L in u x操 作 系 统 的 性 能 成 为 了 各 类 用 户 中 的 一 个 热 点 问 题 。 但 是 , 在 不 同 场 景 下 对 操 作 系统 的 需 求 是 不 一 样 的 , 譬 如 用 作 计 算 天 气 和 运 行 数 据 库 的 需 求 就 完 全 不

5、 同 , 这 就 要 求 L in u x在所 有 可 能 的 场 景 中 都 表 现 出 卓 越 性 能 。 幸 好 , 大 多 数 的 L in u x发 行 版 都 包 含 了 通 用 的 调 优 参数 。IBM把 L in u x作 为 一 个 企 业 级 应 用 操 作 系 统 。 大 多 数 的 企 业 应 用 都 已 经 可 以 在 L in u x上 运 行 , 例如 打 印 服 务 , 数 据 库 服 务 , We b 服 务 和 邮 件 服 务 !作 为 企 业 服 务 , 用 户 需 要 监 控 各 项 系 统 性 能 指 标 , 必 要 的 时 候 , 还 需 解 决

6、影 响 用 户 的 系 统 瓶颈 。 这 本 IBM的 红 皮 书 提 供 了 优 化 L in u x的 办 法 , 使 用 书 中 的 各 种 工 具 , 可 以 监 控 和 分 析 L in u x服 务 器 性 能 , 以 及 针 对 指 定 的 服 务 调 整 关 键 参 数 ! 这 本 书 中 解 释 了 如 何 分 析 和 优 化 L in u x, 使其 在 各 类 应 用 场 景 中 表 现 出 卓 越 性 能 。书 中 环 境 的 各 类 参 数 、 基 准 结 果 和 监 测 工 具 都 是 基 于 运 行 在 IBM Syste m x系 列 服 务 器 和 IBMSy

7、ste m z系 列 服 务 器 上 的 Re d Ha t和 No ve ll SUSE L in u x系 统 , 内 核 版 本 2 .6 。 不 过 , 书 中 的 知识 , 应 该 同 样 适 用 于 运 行 在 各 类 硬 件 平 台 上 的 各 版 本 L in u x!本 书 结 构为 了 方 便 各 类 L in u x或 者 L in u x调 优 新 手 迅 速 开 始 , 我 们 以 如 下 的 方 式 组 织 本 书 :第 一 章 , 理 解 L in u x操 作 系 统 。这 一 章 介 绍 了 影 响 系 统 性 能 的 问 题 , 以 及 L in u x如

8、何 管 理 系 统 资 源 。 你 将 学 习 到 一 些 重 要的 系 统 性 能 指 标 !第 二 章 , 监 控 和 测 试 工 具介 绍 各 类 衡 量 和 分 析 L in u x性 能 的 工 具 。第 三 章 , 分 析 性 能 瓶 颈介 绍 如 何 识 别 出 系 统 中 的 瓶 颈第 四 章 , 优 化 操 作 系 统基 于 前 几 章 已 经 介 绍 的 操 作 系 统 工 作 原 理 , 和 性 能 分 析 工 具 , 你 可 以 开 始 探 索 L in u x上 的各 种 性 能 优 化 办 法 !序2本 书 作 者 团 队本 书 由 来 自 工 作 在 国 际 技

9、术 支 持 组 织 ( In te rn a tio n a l Te ch n ica l Su p p o rt Org a n iza tio n ) 的 专 家组 完 成 。Edua rdo Cilie ndo 是 IT顾 问 专 家 , 在 IBM瑞 士 研 究 系 统 性 能 问 题 。 在 计 算 机 领 域 有 超 过 1 0 年的 经 验 。 Ed d y曾 经 在 苏 黎 世 大 学 学 习 商 业 和 计 算 机 科 学 , 还 获 得 了 日 本 学 学 位 ( 这 是 个 啥 子学 位 ? ) 。 Ed d y是 zCh a mp io n 的 成 员 , 获 得 过

10、 多 项 IT认 证 , 包 括 RHCE。 作 为 IBM Syste m z的 系 统 工 程 师 , 他 负 责 z/OS和 运 行 在 Syste m z上 的 L in u x的 容 量 规 划 和 系 统 性 能 。 Ed d y撰 写了 许 多 关 于 系 统 性 能 和 L in u x的 出 版 物 。Ta k e c hik a Kunima s a 是 IBM日 本 全 球 服 务 中 心 的 副 IT架 构 师 。 他 曾 在 千 叶 大 学 学 习 电 气 与 电子 工 程 学 。 有 1 0 年 以 上 的 IT行 业 经 验 。 做 过 5 年 的 网 络 工 程

11、 师 , 也 做 过 L in u x技 术 支 持 。 他 的专 业 领 域 包 括 各 类 IBM设 备 上 的 L in u x高 可 用 系 统 , 网 络 , 基 础 架 构 设 计 。 他 是 思 科 认 证 的 网络 专 家 ( CCNP) 和 红 帽 认 证 工 程 师 ( RHCE) 。By ron Bra s we ll 网 络 专 家 , 在 国 际 技 术 支 持 组 织 工 作 。 他 在 德 克 萨 斯 A&M大 学 获 得 了 物 理 学士 学 位 和 计 算 机 科 学 硕 士 学 位 。 他 撰 写 过 关 于 网 络 , 应 用 集 成 中 间 件 , 和

12、个 人 电 脑 软 件 的 各类 文 章 。 在 加 入 ITSO之 前 , Byro n 在 IBM的 n e two rkin g e d u ca tio n d e ve lo p me n t的 L e a rn in gSe rvice s De ve lo p me n t里 工 作 ( 这 写 的 晕 死 ) 。感 谢 如 下 帮 助 本 项 目 的 人 :Ma rg a re t Tickn o rCa ro lyn Brisco e序3ITSO, Ra le ig h 中 心Ro y Co staMich a e l B Sch wa rtzFrie d e r Ha mm

13、ITSO, Po u g h ke e p sie 中 心Ch ristia n Eh rh a rd tMa rtin Ka mme re rIBM 德 国Erwa n Au ffre tIBM 法 国成 为 出 版 作 者经 历 2 到 6 周 的 re sid e n cy p ro g ra m( 不 会 的 就 直 接 写 出 来 ) ! 帮 助 编 写 针 对 特 定 产 品 或 者 解 决方 案 的 IBM红 皮 书 , 获 得 尖 端 技 术 的 实 践 经 验 。 你 将 到 接 触 IBM技 术 专 家 , 合 作 伙 伴 和 客 户 !你 的 工 作 将 会 提 高 产

14、品 的 验 收 率 和 客 户 的 满 意 度 。 作 为 奖 励 , 你 会 在 IBM开 发 实 验 室 发 展 起 来联 系 网 络 , 使 你 变 得 更 加 有 生 产 力 和 市 场 化 。想 要 获 得 更 多 实 习 过 程 , 浏 览 实 习 主 页 , 在 如 下 地 址 申 请 :ib m.co m/re d b o o ks/re sid e n cie s.h tml欢 迎 评 论你 的 意 见 过 很 重 要 !我 们 希 望 这 本 书 能 帮 到 你 , 把 你 关 于 本 书 或 者 其 它 IBM红 皮 书 的 意 见 通 过 如 下 方 式 发 给 我 们

15、 :通 过 在 线 的 联 系 我 们 : ib m.co m/re d b o o ks发 送 邮 件 到 : re d b o o ksu s.ib m.co m地 址 :BM Co rp o ra tio n , In te rn a tio n a l Te ch n ica l Su p p o rt Org a n iza tio nDe p t. HYTD Ma il Sta tio n P0 9 92 4 5 5 So u th Ro a dPo u g h ke e p sie , NY 1 2 6 0 1 -5 4 0 0序4=L in u x进 程 管 理什 么 是 进

16、程进 程 的 生 命 周 期线 程进 程 优 先 级 和 n ice 级 别切 换 上 下 文中 断 处 理进 程 状 态进 程 内 存 段L in u x的 CPU调 度在 本 章 开 始 , 我 们 先 了 解 一 下 L in u x是 如 何 处 理 任 务 以 及 与 硬 件 资 源 进 行 交 互 的 。 性 能 调 优 需要 在 深 刻 理 解 硬 件 资 源 、 操 作 系 统 和 应 用 程 序 的 基 础 上 进 行 。 如 果 性 能 优 化 很 简 单 , 我 们 将要 学 习 到 的 参 数 就 应 该 被 硬 编 码 进 固 件 或 者 操 作 系 统 , 否 则

17、, 我 们 就 没 必 要 学 习 本 书 。 如 下图 1 -1 所 示 , 服 务 器 性 能 受 许 多 因 素 影 响 。如 果 一 个 2 0 0 0 0 人 使 用 的 数 据 库 服 务 器 运 行 在 一 块 单 独 的 IDE磁 盘 上 , 你 即 使 花 好 几 周 的 时 间调 试 I/O子 系 统 也 是 白 搭 。 这 种 情 况 下 , 更 换 一 个 新 的 磁 盘 或 者 升 级 应 用 可 能 会 获 得 很 大 的 性能 提 升 。 当 我 们 讨 论 具 体 细 节 的 时 候 , 请 牢 记 上 面 关 于 整 个 系 统 性 能 的 图 片 ! 理 解

18、 操 作 系 统管 理 系 统 资 源 的 方 式 , 能 够 帮 助 我 们 找 到 各 种 场 景 下 应 该 优 化 的 子 系 统 。0 1 .理 解 L in u x操 作 系 统5以 下 的 部 分 简 短 说 明 了 L in u x的 架 构 。 里 面 包 含 了 完 整 的 L in u x内 核 分 析 , 你 可 以 同 时 参 考L in u x内 核 文 档 。本 书 专 注 于 讲 解 L in u x操 作 系 统 的 性 能 。下 面 的 章 节 包 含 如 下 内 容 :1 .1 L in u x进 程 管 理1 .2 L in u x内 存 结 构1 .3

19、 L in u x文 件 系 统1 .4 磁 盘 I/O子 系 统1 .5 网 络 子 系 统1 .6 衡 量 L in u x性 能0 1 .理 解 L in u x操 作 系 统61 .1 Linux 进 程 管 理进 程 管 理 在 任 何 操 作 系 统 上 都 是 最 重 要 事 情 。 高 效 的 进 程 管 理 能 够 确 保 应 用 高 效 稳 定 的 运行 。L in u x的 进 程 管 理 方 式 类 似 于 Un ix的 进 程 管 理 方 式 , 包 含 进 程 调 度 、 中 断 处 理 、 信 号 、 进 程 优先 级 、 进 程 切 换 、 进 程 状 态 、

20、进 程 的 内 存 等 等 。在 本 节 中 , 将 会 讨 论 L in u x进 程 管 理 的 实 现 基 础 , 这 会 帮 助 你 理 解 L in u x内 核 如 何 处 理 影 响 系 统性 能 的 进 程 。1 .1 .1 什 么 是 进 程进 程 是 在 处 理 器 中 执 行 的 实 例 , 内 核 调 度 各 类 资 源 来 满 足 进 程 的 需 求 。所 有 运 行 在 L in u x操 作 系 统 的 进 程 都 被 ta sk_ stru ct这 个 结 构 体 管 理 , ta sk_ stru ct也 被 称 为 进 程描 述 符 。 进 程 描 述 符

21、包 含 一 个 进 程 运 行 所 需 的 所 有 信 息 , 比 如 进 程 的 识 别 、 进 程 的 属 性 以 及构 建 进 程 的 资 源 。 如 果 你 知 道 进 程 的 结 构 , 你 就 能 知 道 对 于 进 程 执 行 和 性 能 最 重 要 的 是 什么 。 下 图 1 -2 展 示 了 进 程 信 息 相 关 结 构 的 概 览 。1 .1 .L in u x进 程 管 理71 .1 .2 进 程 的 生 命 周 期每 个 进 程 都 有 自 己 生 命 周 期 , 比 如 创 建 、 执 行 、 终 止 和 删 除 。 在 系 统 运 行 过 程 中 , 这 些 阶

22、 段反 复 执 行 成 千 上 万 次 。 因 此 , 从 性 能 的 角 度 来 看 , 进 程 的 生 命 周 期 十 分 重 要 。下 图 1 -3 展 示 了 一 般 进 程 的 生 命 周 期1 .1 .L in u x进 程 管 理8当 一 个 进 程 创 建 一 个 新 的 进 程 , 创 建 进 程 的 进 程 ( 父 进 程 ) 使 用 名 为 fo rk()的 系 统 调 用 。 当fo rk()被 调 用 的 时 候 , 它 会 为 新 创 建 的 进 程 ( 子 进 程 ) 获 得 一 个 进 程 描 述 符 , 并 且 设 置 新 的 进程 ID。 复 制 父 进 程

23、 的 进 程 描 述 符 给 子 进 程 。 这 时 候 , 不 会 复 制 父 进 程 的 地 址 空 间 , 而 是 父 子进 程 使 用 同 样 的 地 址 空 间 。e xe c()系 统 调 用 把 新 程 序 复 制 到 子 进 程 的 地 址 空 间 。 由 于 共 享 同 样 的 地 址 空 间 , 写 入 新 进 程 的数 据 会 引 发 页 错 误 的 异 常 。 此 时 , 内 核 给 子 进 程 分 配 新 的 物 理 页 。这 个 延 迟 的 操 作 叫 做 Co p y On Write 。 子 进 程 和 父 进 程 执 行 的 程 序 通 常 不 一 样 , 它

24、 执 行 自 己 的程 序 。 这 个 操 作 避 免 了 不 必 要 的 开 销 , 因 为 , 复 制 整 个 地 址 空 间 是 很 慢 且 低 效 率 的 , 还 会 消耗 很 多 的 处 理 器 时 间 和 资 源 。当 程 序 执 行 完 成 , 子 进 程 使 用 e xit()系 统 调 用 终 止 。 e xit()会 释 放 进 程 的 大 部 分 数 据 结 构 , 并 且把 这 个 终 止 的 消 息 通 知 给 父 进 程 。 这 时 候 , 子 进 程 被 称 为 zo mb ie p ro ce ss(僵 尸 进 程 )。直 到 父 进 程 通 过 wa it()

25、系 统 调 用 知 悉 子 进 程 终 止 之 前 , 子 进 程 都 不 会 被 完 全 的 清 除 。 一 旦 父 进程 知 道 子 进 程 终 止 , 它 会 清 除 子 进 程 的 所 有 数 据 结 构 和 进 程 描 述 符 。1 .1 .3 线 程线 程 是 单 个 进 程 中 生 成 的 执 行 单 元 。 多 个 线 程 在 同 一 个 进 程 中 并 发 运 行 。 它 们 共 享 内 存 、 地址 空 间 、 打 开 文 件 等 等 资 源 。 还 能 访 问 同 样 的 应 用 数 据 集 。 线 程 也 被 称 为 轻 量 级 进 程 ( L ig h tWe ig

26、h t Pro ce ss) 。 由 于 线 程 间 共 享 资 源 , 线 程 不 能 同 时 改 变 它 们 共 享 的 资 源 。 互 斥 、 锁 、序 列 化 等 等 都 是 由 用 户 应 用 程 序 来 实 现 。从 性 能 的 角 度 看 , 创 建 线 程 比 创 建 进 程 更 加 低 消 耗 , 因 为 创 建 线 程 不 需 要 复 制 资 源 。 另 一 方面 , 从 进 程 和 线 程 在 调 度 上 看 , 他 们 拥 有 相 似 的 行 为 。 内 核 用 类 似 的 方 法 来 处 理 他 们 。1 .1 .L in u x进 程 管 理9在 当 前 的 L i

27、n u x实 现 中 , 线 程 由 POSIX( Po rta b le Op e ra tin g Syste m In te rfa ce fo r UNIX, 可 移植 操 作 系 统 接 口 ) 的 兼 容 库 (p th re a d )提 供 。 L in u x支 持 多 线 程 。 如 下 是 已 经 被 广 泛 使 用 的 。L in u xTh re a d s从 L in u x Ke rn e l2 .0 以 后 , L in u xTh re a d s就 是 L in u x上 的 默 认 线 程 实 现 方 法 了 。 L in u xTh re a d s和P

28、OSIX标 准 有 一 些 不 兼 容 的 地 方 。 本 地 POSIX线 程 库 ( Na tive POSIX Th re a d L ib ra ry,NPTL ) 正 在 取 代 L in u xTh re a d s。 L in u xTh re a d s将 会 被 未 来 的 L in u x企 业 发 行 版 所 抛 弃 。Na tive POSIX Th re a d L ib ra ry( NPTL )NPTL 最 开 始 是 有 红 帽 公 司 开 发 的 , 它 和 POSIX标 准 更 加 兼 容 。 由 于 它 在 ke rn e l2 .6 中 具 备 增 强的

29、 clo n e ()新 系 统 调 用 、 信 号 处 理 实 现 等 , 它 比 L in u xTh re a d s具 备 更 好 的 性 能 和 可 扩 展 性 。NPTL 与 L in u xTh re a d s有 一 些 不 兼 容 , 依 赖 于 L in u xTh re a d s的 应 用 可 能 没 法 在 用 NPTL 实 现 的平 台 上 工 作 。Ne xt Ge n e ra tio n POSIX Th re a d ( NGPT)NGPT是 IBM开 发 的 POSIX线 程 库 , 它 目 前 处 于 维 护 中 , 没 有 更 多 的 开 发 计 划

30、。使 用 L D_ ASSUME_ KERNEL 环 境 变 量 , 你 可 以 为 你 的 应 用 程 序 选 择 使 用 哪 一 种 线 程 库 。1 .1 .4 进 程 优 先 级 和 nic e 级 别进 程 优 先 级 由 动 态 优 先 级 和 静 态 优 先 级 决 定 , 它 是 决 定 进 程 在 CPU中 执 行 顺 序 的 数 字 。 优 先级 越 高 的 进 程 被 处 理 器 执 行 的 机 会 越 大 。根 据 进 程 的 行 为 , 内 核 使 用 启 发 式 算 法 决 定 开 启 或 关 闭 动 态 优 先 级 。 可 以 通 过 n ice 级 别 直 接

31、修改 进 程 的 静 态 优 先 级 , 拥 有 越 高 静 态 优 先 级 的 进 程 会 获 得 更 长 的 时 间 片 ( 时 间 片 是 进 程 在 处理 器 中 的 执 行 时 间 ) 。L in u x支 持 的 n ice 级 别 从 1 9 ( 最 低 优 先 级 ) 到 -2 0 ( 最 高 优 先 级 ) , 默 认 只 是 0 。 只 有 ro o t身 份的 用 户 才 能 把 进 程 的 n ice 级 别 调 整 为 负 数 ( 让 其 具 备 较 高 优 先 级 ) 。1 .1 .5 切 换 上 下 文1 .1 .L in u x进 程 管 理1 0在 进 程 执

32、 行 过 程 中 , 进 程 的 信 息 存 放 在 处 理 器 的 寄 存 器 和 缓 存 中 。 这 部 分 执 行 中 进 程 存 放 在寄 存 器 中 的 数 据 就 叫 做 co n te xt, 上 下 文 。 在 切 换 进 程 中 , 正 在 处 理 的 进 程 上 下 文 被 保 存 起来 , 把 下 一 个 要 执 行 的 进 程 的 上 下 文 恢 复 到 寄 存 器 。 上 下 文 通 常 存 储 在 进 程 描 述 符 和 内 核 态栈 中 。 进 程 切 换 就 叫 做 上 下 文 切 换 ( co n te xt switch in g ) 。 因 为 处 理 器

33、 每 次 上 下 文 切 换 都 要 为新 进 程 刷 新 寄 存 器 和 缓 存 , 可 能 引 发 性 能 上 的 问 题 , 所 以 应 该 尽 量 避 免 太 多 的 上 下 文 切 换 。下 图 1 -5 描 述 上 下 文 切 换 是 如 何 工 作 的 。1 .1 .6 中 断 处 理中 断 处 理 是 最 高 优 先 级 别 的 任 务 之 一 。 中 断 通 常 由 I/O设 备 产 生 , 譬 如 网 络 接 口 、 键 盘 、 磁 盘控 制 器 。 中 断 处 理 器 把 键 盘 输 入 、 网 络 帧 到 达 这 类 事 件 通 知 给 内 核 , 它 告 诉 内 核

34、尽 快 中 断 进程 执 行 , 因 为 某 些 设 备 需 要 快 速 的 回 应 。 这 对 系 统 稳 定 性 是 一 个 挑 战 。 当 中 断 信 号 到 达 内核 , 内 核 必 须 切 换 当 前 执 行 中 的 进 程 到 新 的 进 程 , 处 理 中 断 。 这 就 意 味 着 会 发 生 上 下 文 切换 , 同 时 也 意 味 着 大 量 的 的 中 断 会 导 致 系 统 性 能 下 降 。在 L in u x中 有 两 类 中 断 , 硬 中 断 是 由 设 备 产 生 的 需 要 做 出 响 应 的 中 断 , 例 如 磁 盘 I/O中 断 , 网 卡中 断 ,

35、键 盘 和 鼠 标 中 断 。 软 中 断 用 于 任 务 处 理 , 可 以 推 迟 , 例 如 TCP/IP操 作 、 SCSI协 议 操作 。 可 以 在 /p ro c/in te rru p ts中 看 到 相 关 的 硬 中 断 信 息 。在 多 处 理 器 环 境 中 , 中 断 由 各 个 处 理 器 自 行 解 决 。 把 中 断 绑 定 到 单 个 物 理 处 理 器 上 可 以 增 强系 统 性 能 。 更 多 细 节 , 参 考 4 .4 .2 , CPU a ffin ity fo r in te rru p t h a n d lin g 。1 .1 .7 进 程

36、状 态每 个 进 程 都 有 自 己 的 状 态 , 显 示 进 程 中 当 前 发 生 的 事 情 , 进 程 执 行 时 进 程 状 态 发 生 改 变 。 可能 的 状 态 列 表 如 下 :1 .1 .L in u x进 程 管 理1 1TASK_ RUNNING在 这 个 状 态 中 , 进 程 正 在 CPU中 执 行 , 或 者 在 运 行 队 列 ( ru n q u e u e ) 中 等 待 运 行 。TASK_ STOPPED进 程 由 于 特 定 的 信 号 ( 如 SIGINT、 SIGSTOP) 而 挂 起 就 会 处 于 这 个 状 态 , 等 待 恢 复 信号

37、, 比 如 SINCONT。TASK_ INTERRUPTIBL E在 此 状 态 中 , 进 程 挂 起 并 且 等 待 一 个 特 定 的 条 件 。 假 如 进 程 处 于TASK_ INTERRUPTIBL E状 态 并 且 收 到 一 个 停 止 信 号 , 进 程 状 态 会 发 生 改 变 , 操 作 会 中断 。 TASK_ INTERRUPTIBL E的 典 型 例 子 是 等 待 键 盘 中 断 。TASK_ UNINTERRUPTIBL E类 似 于 TASK_ INTERRUPTIBL E。 当 进 程 处 于 TASK_ INTERRUPTIBL E 状 态 可 以

38、被 中断 , 发 送 一 个 信 号 给 TASK_ UNINTERRUPTIBL E却 不 会 有 任 何 反 应 。TASK_ UNINTERRUPTIBL E最 典 型 的 例 子 是 进 程 等 待 磁 盘 I/O操 作 。TASK_ ZOMBIE进 程 在 使 用 e xit()系 统 调 用 退 出 以 后 , 父 进 程 应 该 知 道 进 程 终 结 。 在 TASK_ ZOMBIE状 态中 , 进 程 在 等 待 父 进 程 收 到 通 知 并 释 放 所 有 的 数 据 结 构 。僵 尸 进 程当 进 程 已 经 收 到 信 号 而 终 止 , 正 常 情 况 下 , 完

39、全 结 束 之 前 , 它 有 一 些 时 间 来 完 成 所 有 的 任 务( 例 如 关 闭 打 开 的 文 件 ) 。 在 这 个 很 短 的 的 正 常 的 时 间 片 里 , 这 个 进 程 是 僵 尸 。1 .1 .L in u x进 程 管 理1 2当 进 程 完 成 了 所 有 的 关 闭 操 作 , 它 向 父 进 程 报 告 它 即 将 终 结 。 有 时 候 , 僵 尸 进 程 不 能 够 结 束它 自 己 , 这 个 状 态 下 , 它 就 显 示 状 态 为 Z( zo mb ie ) 。因 为 它 已 经 死 了 , 所 以 不 可 能 使 用 kill命 令 杀

40、死 这 种 进 程 。 如 果 无 法 摆 脱 将 死 进 程 , 可 以 杀 死僵 尸 进 程 的 父 进 程 , 这 样 僵 尸 进 程 也 会 消 失 。 然 后 , 如 果 僵 尸 进 程 的 父 进 程 是 in it, 你 就 别 这么 做 了 , in it是 非 常 重 要 的 进 程 , 你 可 能 要 重 启 才 能 摆 脱 僵 尸 进 程 了 。1 .1 .8 进 程 内 存 段进 程 使 用 自 己 的 内 存 区 域 处 理 任 务 , 任 务 种 类 由 场 景 和 进 程 用 途 决 定 。 进 程 有 不 同 的 工 作 特性 和 不 同 数 据 大 小 要 求

41、 , 进 程 必 须 处 理 各 种 大 小 的 数 据 。 为 满 足 这 一 要 求 , L in u x内 核 给 各 个进 程 使 用 动 态 内 存 分 配 机 制 。 进 程 内 存 分 配 结 构 如 下 图 1 -7 。进 程 内 存 区 域 包 含 如 下 段 :文 本存 储 可 执 行 代 码 的 区 域数 据数 据 段 由 如 下 三 个 区 域 构 成Da ta : 存 储 初 始 化 数 据 , 比 如 静 态 变 量BSS: 存 储 初 始 化 0 数 据 , 数 据 初 始 化 为 0He a p (堆 ): 根 据 需 要 使 用 ma llo c()分 配 动

42、 态 内 存 。 堆 向 高 地 址 空 间 增 长 。1 .1 .L in u x进 程 管 理1 3栈该 区 域 存 储 局 部 变 量 、 函 数 参 数 和 函 数 的 返 回 地 址 。 栈 向 低 地 址 空 间 增 长 。用 户 进 程 的 地 址 空 间 分 配 可 以 使 用 p ma p 命 令 显 示 出 来 。 你 可 以 使 用 p s命 令 显 示 总 的 段 大 小 。参 考 2 .3 .1 0 , “p ma p ”和 2 .3 .1 0 , “p s和 p stre e ”。1 .1 .8 Linux 的 CPU调 度计 算 机 的 最 基 本 功 能 就 是

43、 计 算 , 为 了 实 现 计 算 功 能 , 必 须 要 有 办 法 管 理 计 算 资 源 、 处 理 器 、计 算 任 务 , 也 就 是 常 说 的 进 程 和 线 程 。 感 谢 In g o Mo ln a r所 做 出 的 伟 大 贡 献 , L in u x内 核 使 用O(1 )而 不 是 O(n )来 实 现 CPU调 度 。 O(1 )就 是 静 态 算 法 , 意 味 着 处 理 器 选 择 和 调 用 进 程 开 始 执行 的 时 间 是 一 个 常 数 , 不 论 多 少 进 程 数 量 的 情 况 下 都 是 如 此 。新 的 调 度 器 十 分 好 用 , 不

44、 用 考 虑 进 程 数 量 和 处 理 器 数 量 , 强 制 使 用 很 小 的 开 销 。 这 个 算 法 使用 两 个 进 程 优 先 级 数 组 :a ctivee xp ire d由 于 调 度 器 根 据 进 程 的 优 先 级 和 先 前 阻 塞 率 来 位 分 配 时 间 片 , 进 程 的 优 先 级 被 放 在 一 个 a ctive数 组 中 。 当 时 间 片 到 期 , 它 们 被 重 新 分 配 新 的 时 间 片 , 并 且 放 置 到 e xp ire d 数 组 上 。 当 所 有a ctive 数 组 上 的 进 程 都 到 期 , a ctive 和 e

45、 xp ire d 数 组 发 生 对 换 , 重 启 算 法 。 对 于 一 般 的 交 互 进 程( 对 应 实 时 进 程 ) , 高 优 先 级 的 进 程 通 常 会 比 低 优 先 级 进 程 分 配 更 多 的 时 间 片 , 但 是 并 不 意味 着 完 全 不 给 低 优 先 级 进 程 机 会 。 这 个 算 法 大 大 提 高 L in u x内 核 的 可 扩 展 性 , 对 于 包 含 各 种 大量 进 程 和 线 程 以 及 处 理 器 的 工 作 需 求 , 尤 其 如 此 。 新 的 O(1 )CPU调 度 算 法 是 为 内 核 2 .6 设 计的 , 兼 容

46、 内 核 2 .4 的 版 本 。 如 下 1 .8 展 示 和 L in u x的 CPU调 度 器 是 如 何 工 作 的 。1 .1 .L in u x进 程 管 理1 4新 调 度 器 的 另 外 一 个 大 有 有 点 是 支 持 非 均 匀 内 存 架 构 ( No n -Un ifo rm Me mo ry Arch ite ctu re ,NUMA) 和 对 称 多 线 程 处 理 器 , 例 如 In te l的 超 线 程 技 术 。支 持 NUMA保 证 了 正 常 情 况 下 不 会 出 现 负 载 均 衡 的 情 况 , 除 非 一 个 节 点 负 担 过 重 。 这

47、 个 机 制保 证 了 在 NUMA系 统 中 , 比 较 缓 慢 的 链 路 负 载 较 小 。 尽 管 在 一 个 组 中 的 处 理 器 调 度 的 每 一 个处 理 , 会 被 负 载 均 衡 , 但 是 调 度 器 的 组 只 会 在 节 点 负 载 过 高 和 要 求 负 载 均 衡 的 时 候 产 生 。1 .1 .L in u x进 程 管 理1 51 .2 Linux 内 存 体 系L in u x内 存 体 系物 理 和 虚 拟 内 存虚 拟 内 存 管 理 器进 程 执 行 过 程 中 , L in u x内 核 根 据 需 要 给 进 程 分 配 一 块 内 存 区 域

48、 。 进 程 就 把 这 片 区 域 作 为 工 作区 , 按 执 行 要 求 操 作 。 这 就 像 给 你 分 配 一 张 自 己 的 桌 子 , 你 可 以 在 桌 子 上 摆 放 文 档 , 备 忘录 , 开 展 自 己 的 工 作 。 区 别 在 于 , 内 核 以 更 加 动 态 的 方 式 分 配 空 间 。 系 统 上 运 行 的 进 程 经 常是 成 千 上 万 的 , 但 是 内 存 必 然 是 有 限 的 。 于 是 , L in u x必 须 高 效 的 处 理 内 存 问 题 。 在 本 节 中 ,将 介 绍 L in u x内 存 架 构 、 地 址 布 局 、 以

49、 及 L in u x如 何 高 效 管 理 内 存 空 间 。1 .2 .1 物 理 和 虚 拟 内 存现 实 中 , 我 们 经 常 会 面 临 3 2 位 还 是 6 4 位 操 作 系 统 的 选 择 , 对 用 户 来 说 , 它 们 间 最 大 的 差 别 是能 否 支 持 4 GB以 上 的 虚 拟 内 存 空 间 。 站 在 性 能 的 角 度 来 理 解 3 2 位 和 6 4 位 的 系 统 上 , L in u x映 射物 理 内 存 到 虚 拟 内 存 的 区 别 是 十 分 有 趣 的 。 如 下 图 所 示 , 可 以 明 显 看 出 内 存 映 射 方 式 在 3 2 位和 6 4 位 系 统 上 的 区 别 , 详 尽 探 索 物 理 内 存 映 射 到 虚 拟 内 存 超 出 了 本 文 的 范 围 , 我 们 重 点 学 习L in u x的 内 存 架 构 的 一 些 知 识 。在1 .2 .L in u x内 存 体 系1 63 2 位 架 构 的 机 器 上 , L in u x内 核 只 能 直 接 映 射 第 一 个 GB的 的 物 理 内 存 ( 8 9 6 M, 因 为 还 要 考 虑到 保 留 的 空 间 ) 。 在 此 上 的 内 存 被 称 作 ZONE_ NORMAL , 这 部 分 空 间 必 须 映 射 到 最

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > linux/Unix相关

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报