Linux读书报告

时间:2024.5.9

江 学 院

课程名称: linux操作系统 姓 名: 刘杏娟 学 号: 201130060117

专业班级: 信息管理与信息系统 系 (院): 长江学院数学与信息管理系 时 间: 2014/6/17

Linux读书报告

1

目录

摘要··················································3

一、用户和用户组······································3

1、用户的概念··························3

2、用户组的概念·························4 3、用户和用户组的对应关系····················4

二、管理用户(user)和用户组(group)的相关工具或命令 ···························4

1、管理用户(user)的工具或命令················4

2、管理用户组(group)的工具或命令···············5

三、使用命令行方式和使用Red Hat用户管理者管理用户和组的对比····················································5

1、添加用户:····················································5

2、修改用户信息·················································8

3、添加用户组··························································11

四、学习体会··········································12

2

摘要:

在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组。用户是否有权限的对某文件进行访问、读写以及执行,受到系统严格约束的正是这种清晰、严谨的用户与用户管理系统。在很大程度上它保证了linux系统的安全性。

root的权限是最高的,也被称为超级权限的拥有者。普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户。

在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外。root用户的特权性还表现在root可以超越任何用户和用户组来对文件或目录进行读取、修改或删除(在系统正常的许可范围内);对可执行程序的执行、终止;对硬件设备的添加、创建和移除等;也可以对文件和目录进行属主和权限进行修改,以适合系统管理的需要(因为root是系统中权限最高的特权用户);

一、 用户和用户组

1、 用户(user)的概念:

Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,请查看 /etc/passwd ;

用户的登陆名是用户用来登陆的识别,由用户自行选定。所有用户口令的存放都是加密的,通常采用的是不可逆的加密算法,当用户在登陆提示符输入它们的口令时,输入的口令将由系统进行加密。再把加密后的数据进行比较。如果这两个加密数据匹配,就可以让用户进入系统。

2、 用户组(group)的概念

3

用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;

3、用户和用户组的对应关系

是:一对一、多对一、一对多或多对多;

一对一:某个用户可以是某个组的唯一成员;

多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;

一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;

多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;

二、管理用户(user)和用户组(group)的相关工具或命令;

1)管理用户(user)的工具或命令;

useradd 注:添加用户

adduser 注:添加用户

passwd 注:为用户设置密码

usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等; pwcov 注:同步用户从/etc/passwd 到/etc/shadow

pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;

pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;

finger 注:查看用户信息工具

id 注:查看用户的UID、GID及所归属的用户组

chfn 注:更改用户信息工具

su 注:用户切换工具

sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user), 4

su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sud o 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;

2)管理用户组(group)的工具或命令;

groupadd 注:添加用户组;

groupdel 注:删除用户组;

groupmod 注:修改用户组信息

groups 注:显示用户所属的用户组

grpck

grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;

grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

三、使用命令行方式和使用Red Hat用户管理者管理用户和组的对比:

1、添加用户:

①使用useradd

1) 语法:[root@localhost rainbow]#useradd rain

2) 作用:添加一个用户到系统中

3) 实例:

//建立一个用户名为jone

//描述信息为Jone

//用户组为jerry

//登陆shell为/bin/sh

//登陆主目录/home/Jone的用户

[root@localhost root]#useradd —r jone ---c “Jone”----g jerry ----s/bin/sh ---d/home/Jone

5

[root@localhost root]#passwd jone

Changing password for user jone

New password:

Retype new password:

Passwd:all authentication tokens updated successfully.

[root@localhost root]# useradd -r jeferry –c “Jeffery” –g jerry –s /bin/csh –d/Jeffery –u 4800 –e 2013-06-30

②用Red Hat Enterprise Linux 用户管理者管理用户和组:

添加用户:

启动Red Hat【用户管理者】后,就可以方便地进行添加用户的操作。将【用户管理者】切换到【用户】标签页,可以查看系统已经创建的用户的基本信息,包括用户名、用户ID、主要组群(即用户组)、全称、登陆shell和主目录。

(1)使用【用户管理者】中目标栏的【添加的用户】按钮,则会弹出【添加新用户】对话框。

(2)在【创建新用户】对话框中填写需要添加的用户的基本信息,则包括用户名、用户ID、主要群组、全称、登陆shell和主目录等。

(3)填写信息完毕后,单击【确定】按钮,则添加用户操作成功。如果不行操作生效,则单击【取消】按钮。

完成后,可以通过查看【用户管理者】,可以清晰看到,系统已经成功添加新用户。

6

创建用户对话框:

Linux读书报告

用户创建成功:

Linux读书报告

7

2、 修改用户信息

①使用usermod命令修改用户信息

1) 语法:[root@localhost root]#usermod [-LU] [-c<备注>] [-d<登入

目录>] [-e<有效期限>] [-f<缓冲天数>] [-l<账号名称>] [-s<shell>]

[-u<uid>] [用户账号]

2) 作用:用来修改用户的各项设定

3) 举例:

//将用户jeffery的组改成super

//其用户ID改为5600

[root@localhost root]#usermod –g super –u 5600 jeffery

②用Red Hat Enterprise Linux 用户管理者管理用户和组:

通过使用【用户管理者】不但可以创建用户,而且可以方便地修改系统已有用户的各个相关属性。

(1) 选定【用户管理者】中【用户】标签下要修改的用户。

(2) 双击该用户区域或者单击工具箱中的【属性】按钮,则弹出【用户属

性】对话框。

(3) 在【用户属性】对话框中,单击【用户数据】标签,则可以改写用户

的基本信息,包括:用户名、用户ID、主要组群、全称、登陆shell和主目录。

(4) 在【用户属性】对话框中,单击【账号信息】标签,则可以设定是否

启用账号的过期选项,并确定是否需要锁定账号。

8

修改用户信息:

Linux读书报告

用户属性修改:

Linux读书报告

9

Linux读书报告

Linux读书报告

10

3、 添加用户组

① 使用groupadd命令创建用户组:

1) 语法:[root@localhost root]# groupadd [-g gid] [-r] [-f] groupname

2) 作用:按照要求添加用户组,-g gid 指定组ID,-o允许组ID并非唯一,-r建立低

于499的系统账号;

3) 举例:

//创建一个GID为5400,组名为testbed的用户组

[root@localhost root]# groupadd –g 5400 testbed

Linux读书报告

11

四、学习心得

通过学习我的收获了很多东西:

1、了解Linux操作系统基本操作。

2、知道构造嵌入式LINUX操作系统的方法。

3、接触开发环境的配置方法。

4、掌握编译器使用的方法。

在上课的的过程中,我发现单单的linux是一个很有意思的操作系统,而linux嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。这两个是不同的概念。现在我根据个人理解和网上资料说一下Linux内核的概念和启动过程。以及在linux的启动过程中Boot Loader的执行流程。和Linux文件系统的相关知识。然后再分析一下keyboard键盘实验的整体原理和试验中用到的一些函数的功能。

以前对Linux系统只是知道个大概,而现在经过一个学期的学习,使我对这款操作系统有了更深层次的了解,我学会了如何安装Linux系统,如何在Linux操作系统的背景下进行对计算机的基本操作。在使用这款的操作系统的同时,我发现了这款系统相对于Windows系统有着很多的优势,Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿来使用。因此,我比较喜欢用这款操作系统,他不仅安全,而且好用。

Linux读书报告

12


第二篇:Linux 上的 Oracle9iR2: - 巧巧读书


Linux上的Oracle9iR2巧巧读书

Linux 上的 Oracle9iR2: Red Hat Linux Advanced Server 2.1的性能、可靠性和可管理性的 增强特性 Oracle 技术白皮书 20xx年6月

目录

执行概要.....................................................................................................3

LINUX 上的 ORACLE 体系结构.....................................................3

基于进程的模型.................................................................................4

对文件系统的支持............................................................................4

64 位文件 I/O...................................................................................4

性能增强.....................................................................................................5

I/O 子系统.........................................................................................5

异步 I/O.....................................................................................5

消除对回弹缓冲区的拷贝......................................................6

减少对 io_request_lock 的争用............................................7

I/O 驱动程序优化...................................................................7

虚拟内存子系统.................................................................................1

总计 4GB RAM 的大系统 SGA..........................................8

总计 64 GB RAM 的系统超大内存 (VLM)...................10

大型页面.....................................................................................1

进程调度程序...................................................................................13

可靠性的增强..........................................................................................14

高端内存 PTE 补丁.......................................................................14

改进的 Oracle9iR2 RAC 可伸缩性.............................................15

可管理性的增强......................................................................................15

lsraid 实用工具.................................................................................15

网络控制台和停机转储程序........................................................16

集群的管理........................................................................................16

对 64 位的支持......................................................................................17

结论............................................................................................................17

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 2 页

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1 上的性能、可靠性

和可管理性的增强特性

执行概要

Linux 是为全世界的小型、中型和大型公司进行大范围部署 IT 应用程序的起点。随着客户将关键商务应用程序移植到 Linux 时,对于操作系统的性能、可靠性和可管理性的需求不断增加。Oracle — 最大的企业软件供应商,具有在多种操作系统平台上进行部署的多年经验 — 独特地定位于促使 Linux 从工作站环境发展到高端的服务器平台。

Oracle 已经与 Red Hat 建立了牢固的关系。它与 Red Hat 密切协作,将关键的增强特性加入到 Linux 内核,力求生产一个支持企业级功能和关键任务应用程序的操作系统。合作结果是,Red Hat 发布了一个称为 “Advanced Server” 的新版本,它为 Oracle 在市场中领先的数据库和应用服务器进行了优化。本文描述了当客户在 Red Hat Linux Advanced Server 2.1 上部署 Oracle9iR2 时,为之提供的最重要的新特性。

LINUX 上的 ORACLE 体系结构

Linux 提供与多数 UNIX 平台类似的编程接口和功能。因此,Linux 上的 Oracle9iR2 体系结构非常类似于基于 UNIX 操作系统(包括 Solaris、HPUX 和 Tru64)上的 Oracle 体系结构。这样可保证 Linux 上的 Oracle 产品继承在传统 UNIX 平台上开发多年的性能和稳定性。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 3 页

基于进程的模型

与 Windows 基于线程的体系结构相比,Linux 上的 Oracle9iR2 类似于 UNIX 平台基于进程的体系结构。在 Linux 上,Oracle 使用进程实现后台任务,如数据库写入器、日志写入器、进程监视器等;以及前台任务,如处理传入的客户端连接。在 Windows 上,所有这些任务在单进程中作为线程实现。基于线程的模型在基于 32 位 Intel Pentium 的系统中具有限制,因为所有线程共享同一个用于 SGA、PGA 和其他内存的 3GB 地址空间。例如,当使用大的排序区时,有多少内存可用就会成为问题,因为所有前台线程都从同一个 3GB 池中获取内存。而在进程模型中,每个前台进程都有它自己的地址空间,这样它就可以使用更多的内存。应该注意的是,在 64 位的系统中没有这种限制,因为每个进程具有至少 8TB 的用户地址空间。 对文件系统的支持

Oracle9iR2 通过了 Red Hat Linux Advanced Server 2.1 上标准 Linux 文件系统 “ext2” 的认证。此外,Oracle 还通过认证,可在“原始”(未格式化的)磁盘分区中运行。原始文件具有改进 I/O 性能的优点,因为没有文件系统的开销。但是,原始文件的管理比较困难,因此仅将它们用于高端安装,或在使用需要原始文件的 RAC 时使用它们。

64 位文件 I/O

Linux 支持 64 位文件 I/O,即使在 32 位平台上(如基于 Intel Pentium 的服务器)也能支持。Oracle9iR2 内部支持 64 位文件偏移,因此没有对数据、日志和控制文件的 2GB 或 4GB 的限制。对每个数据库的文件数量 (64K)、每个文件的块数量(4 百万)和最大块大小 (16KB) 的限制与其他 Oracle 平台相同。基于这些限制,数据库文件最大为 64GB,而使用 16KB 块的数据库最大为 4 petabyte。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 4 页

性能增强

Oracle 已经进行了与性能相关的广泛测试,以识别出可以对 Linux 内核进行哪些改进获得数据库和应用服务器性能。本节描述在 Red Hat Linux Advanced Server 2.1 上 Oracle9iR2 提供的特性。与以前 Linux 上的 Oracle 版本相比,这些特性显著地提高了性能。虽然本文在 Intel 的 32 位 (IA-32) 平台上讨论增强特性,但其大部分信息适用于即将推出的基于 Itanium 2 处理器的 Intel 64 位 (IA-64) 平台上的 Oracle9iR2 和 Red Hat Linux Advanced Server 的产品版本。 I/O 子系统

使用 Advanced Server,Oracle 数据库工作负载下的系统 I/O 吞吐量显著提高。I/O 子系统中最重要的增强特性有异步 i/o、消除在写入磁盘时对内存缓冲区的多次拷贝、减少对内核锁的争用以及大量 IO 驱动程序的增强等。

异步 I/O

最重要的增强特性之一是内核中的异步 I/O(或非阻塞 I/O)。在 Advanced Server 引入异步 I/O 之前,进程频繁地提交磁盘 I/O 请求。每个 I/O 请求将会导致调用进程休眠,直到请求完成为止 。异步 I/O 允许进程不必等待其完成即可提交 I/O 请求。其实现还允许 Oracle 进程利用单个系统调用将多个 I/O 请求发送到磁盘,而不是大量的单个 I/O 请求。它以两种方式改进了性能。首先,因为进程可以将多个请求排成队列以供内核处理,所以内核通过重新排列请求或者将磁盘上相邻的请求联结成更少、更大的请求,能够最优化磁盘操作。其次,因为系统在硬件处理请求时没有将进程置为休眠状态,所以进程能够执行其他任务,直到 I/O 完成为止。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 5 页

默认情况下,Oracle9iR2 发售时禁用异步 I/O 支持。适应不支持此

本文概要列出为 Red Hat Linux

Advanced Server 2.1 上的

Oracle9iR2 启用各种特性的步

骤,目的在于促进对技术概念的

进一步理解。强烈推荐读者参考

相关的产品文档(版本信息、管

理员参考、安装指南等)、Oracle

支持以及 Redhat 支持,以获取

最新和最准确的信息。特性的其他 Linux 发布版本非常必要。要为 Red Hat Linux Advanced Server 2.1 上的 Oracle9iR2 启用异步 I/O,客户需要执行产品文档中列出的以下步骤: 1) cd to $ORACLE_HOME/rdbms/lib a) make -f ins_rdbms.mk async_on b) make -f ins_rdbms.mk ioracle

2) 如果由于某种原因需要禁用异步 I/O,则执行下列步骤 cd to $ORACLE_HOME/rdbms/lib

a) make -f ins_rdbms.mk async_off

b) make -f ins_rdbms.mk ioracle

3) 在 init.ora 中为原始设备设置参数:

a) 设置 'disk_asynch_io=true' (默认值为 true)

4) 在 init.ora 中为文件系统的文件设置参数:

a) 确保所有的 Oracle 数据库文件位于支持异步 I/O 的文件

系统中(例如 ext2)

b) 设置 'disk_asynch_io=true'(默认值为 true)

c) 设置 'filesystemio_options=asynch'

消除对回弹缓冲区的拷贝

在 IA-32 系统中,第一个 gigabyte (GB) 的物理内存称为“低端内存”。1GB 以上的物理内存称为“高端内存”。以前版本的 Linux 内核要求将传到存储设备的数据缓冲区定位在物理 RAM 的低端内存区域,即使应用程序也可以使用高端和低端内存。来自位于低端内存的数据缓冲区的 I/O 请求导致直接的存储器存取操作(没有拷贝)。但是,当应用程序将高端内存中的数据缓冲区作为 I/O 请求的一部分传送到内核时,内核将在低端内存中强制分配一个临时数据缓冲区,将数据拷贝到高端内存中的应用程序缓冲区,或从该处将数据拷贝出来。这种对数据的额外拷贝称为“回弹缓冲”,会极大降低 I/O 集中的数据库应用程序的性能。这是因为分配的大量回弹缓冲区消耗了大量的内存,并且回弹缓冲区的拷贝为系统内存总

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 6 页

有关 Linux 上 Oracle 与 VM

子系统的交互作用的更多详细信

息,请参考标题为“Red Hat

Linux Advanced Server 2.1 中

的 Linux 虚拟内存和 Oracle

的内存使用特性”的 Oracle 技

术白皮书。线增加了额外的负担。Red Hat Linux Advanced Server 2.1 显著地减少了(在很多情况中完全消除了)对执行回弹缓冲的需要。 减少对 io_request_lock 的争用 Linux 内核使用旋转锁来维护由多个进程并行访问的内核数据结构的完整性。内核的早期版本将单个旋转锁用于整个块设备子系统。这迫使所有执行 I/O 的进程甚至在向无关设备执行 I/O 时也竞争此单项资源,因而创造了人为的瓶颈,导致整体系统 I/O 吞吐量减少。Red Hat Linux Advanced Server 2.1 已经实现了一种新的用于块设备子系统的小粒度锁定模式,包括为每个单独的块设备分配单独的锁。其结果是,在数据库负载很繁重时,具有多个 I/O 控制器的 SMP 系统的 I/O 吞吐量显著提高。 I/O 驱动程序优化 合作伙伴(包括 Dell、HP/Compaq、EMC)提供的服务器硬件中使用的 I/O 卡驱动程序代码有了大量的增强功能。其中一些增强功能消除了我们在性能实验室中识别出的瓶颈问题,而其他的增强功能使驱动程序能够利用回弹缓冲区以及在前面章节中提及的 io_request_lock 变更。 虚拟内存子系统 虚拟内存 (VM) 子系统对于数据库性能非常重要。Oracle 数据库体系结构十分依赖于共享全局区 (SGA),这是由所有后台和前台进程共享的内存区域。包含数据库块缓冲区高速缓存的 SGA 的大小,是影响 Oracle 性能的一个主要调节参数。更大的 SGA 允许在内存中

缓存更多的数据,可以显著改善许多数据库工作负载的性能。SGA 的大小以及其他的参数(包括 OS 页面的大小)由 VM 子系统决定。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 7 页

发售的 Red Hat Linux

Advanced Server 2.1 有两个内

核。默认的 “smp” 内核支持最

多 4GB RAM,并使用两级页面

表。“enterprise” 内核支持最多

64GB RAM,并需要三级页面表

以访问更大的 RAM。在具有

4GB 或更少 RAM 的系统中,

推荐使用 “smp” 内核,原因在

于使用两级页面表具有较低的内

存和 CPU 开销。虽然本节中描述的 VM 子系统增强特性可以极大地提高各种工作负载的性能和稳定性,但是理解优点和限制之间的平衡仍然非常重要。不同的工作负载具有不同的数据库缓存使用特性,没有“公式”可以确定任何给定条件下的最佳增强设置和调节参数。可能需要收集有关实际工作负载的统计信息,以便决定系统的最优化配置。 总计 4GB RAM 的大系统 SGA 在最多 4GB RAM 的系统中,多数 Linux 发布版本允许 Oracle 使用大约 1.7GB 地址空间作为其 SGA。Red Hat Linux Advanced Server 2.1 是第一个在 /proc 文件系统中提供可调参数的 Linux 发布版本,允许在进程中使用更多地址空间。为增加这一大小,需要将 Oracle 重新链接更低的 SGA 基地址,而 Linux 需要为运行 Oracle 的进程而调低映射基地址。为此需要按照以下两个步骤执行:

首先,必须通过重新链接 Oracle 来调低 Oracle 所使用的 SGA 基地址。目前发售的 Oracle 的基地址设在 0x50000000,因而它与多数 Linux 发布版本所设置的默认值相兼容。调低此地址可允许 Oracle 在进程中使用更多的地址空间,但是应该注意到,除非也对 Advanced Server 2.1 进行相应的更改,否则更改和重新链接 Oracle 二进制文件将无效,这一点非常重要。请按照以下步骤调低 Oracle 中的 SGA 基地址:

? 关闭 Oracle 的所有实例

? cd $ORACLE_HOME/lib

? cp -a libserver9.a (进行备份拷贝) ? cd $ORACLE_HOME/bin

? cp -a oracle oracle.org (进行备份拷贝)

? cd $ORACLE_HOME/rdbms/lib

? genksms -s 0x15000000 >ksms.s (将 SGA 基地址调低到

0x15000000)

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 8 页

? make -f ins_rdbms.mk ksms.o (在新的 SGA 基地址中进

行编译)

? make -f ins_rdbms.mk ioracle (重新链接)

下一步,需要将 Linux 内核的映射基地址调低到 Oracle 新的 SGA 基地址以下。Advanced Server 2.1 在 /proc 中有一个参数,为每个进程调低内核的映射基地址。此参数不是系统范围的参数。它是每个进程的参数,但可以由子进程继承。此参数只能由根进行更改。以下步骤指出如何为一个终端会话调低映射基地址。一旦通过调低映射基地址更改了此会话,则需要将此会话(窗口)用于所有的 Oracle 命令,以便 Oracle 进程可以使用继承的(调低的)映射基地址:

?

?

?

? 关闭 Oracle 实例。 打开一个终端会话(Oracle 会话)。 打开第二个终端会话并 su 到根(根会话)。 找出 Oracle 会话的进程 id。例如,在 Oracle 会话中执

行 "echo $$"。

? 现在将 Oracle 会话的映射基地址调低到 0x10000000。

在根会话中,echo 268435456 >/proc/<pid>/mapped_base,其中 <pid> 是在前面步骤中确定的进程 id。

? 增加 shmmax 的值,以便 Oracle 在一个段中分配 SGA。

在根会话中,echo 3000000000

>/proc/sys/kernel/shmmax

? 在 Oracle 终端会话中,启动 Oracle 实例。现在 SGA 从

调低的地址处开始,因此 Oracle 可以使用更多的地址空间。 现在可以增加 db_cache_size 或 db_block_buffers 在 init.ora 中的值,以增加数据库缓冲区高速缓存的大小。在 Oracle 支持网站中可以找到详细指示、限制和自动执行某些步骤的脚本等。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 9 页

在上面的边条中曾提到,用于访问

超过 4GB RAM 的

“enterprise” 内核需要三级页面

表,这样导致更高的内存和 CPU

使用率。但是,对于许多工作负载,

在具有超过 4GB RAM 的系统

中,访问额外的 RAM 可以显著

提高可伸缩性和性能。考虑使用此

选项的优点和限制非常重要。总计 64 GB RAM 的系统超大内存 (VLM) Advanced Server 2.1 内核允许 Oracle 在 32 位 Intel 平台上为数据库缓冲区高速缓存分配和使用超过 4GB 的内存。在 Oracle 文档中,此特性也称为 VLM(超大内存)。利用 Red Hat Linux Advanced Server 2.1 上的 Oracle9iR2,根据系统的可用 RAM 内存,可以将 SGA 增加到理论极限值:大约 62GB。当前的硬件限制和实际的考虑会限制可以配置的 SGA 的实际大小,但它仍然比没有 VLM 的 SGA 大数

倍。在 VLM 模式中运行需要对 Linux 进行一些设置更改,并对可以使用的特性和 init.ora 参数加以限制。

Linux OS 的更改:‘根’管理员必须在 /dev/shm 上安装一个内存中的文件系统,其大小等于或大于将被用于数据库缓冲区高速缓存的内存数量。如果已经安装了内存中的文件系统,只要它足够大,就可以持续使用。如果没有安装这样的文件系统,则执行类似以下的命令即可:

mount -t shm shmfs -o nr_blocks=2097152 /dev/shm

此命令在 /dev/shm 上创建一个大小为 8GB 的 shmfs 文件系统。每个 nr_block 为 4096 字节。当在启用扩展缓冲区高速缓存特性时启动 Oracle,则在 /dev/shm 中创建一个对应于 Oracle 的缓冲区高速缓存的文件。

init.ora 的更改:通过在 init.ora 文件设置

'use_indirect_data_buffers=true',启用扩展缓冲区高速缓存特性。这样允许指定更大的缓冲区高速缓存。但是,此特性不适用于较新的动态高速缓存参数。因此在启用扩展高速缓存特性时,不能使用以下参数:

? db_cache_size

? db_2k_cache_size

? db_4k_cache_size

? db_8k_cache_size

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 10 页

?

? db_16k_cache_size db_32k_cache_size

IA-32 可以同时支持两个页面大

小 — 4KB 和“大型页面”。在

正常模式(Linux 4GB 内核)以

及页面大小扩展 (PSE) 打开时,

“大型页面” = 4MB 并且 cpu

使用 2 级页面表。在物理地址扩

展 (PAE) 模式(Linux 64GB 内

核)以及 PSE 打开时,“大型页

面” = 2MB 并且 cpu 使用 3

级页面表。如果使用扩展高速缓存特性,必须使用 db_block_buffers 指定数据库高速缓存的大小。在 Oracle9iR2 文档中描述了扩展高速缓存特性以及其他限制的更详细信息。 如果在 VLM 模式中运行(init.ora 的参数 'use_indirect_data_buffers=true')并且已经拥有很大的缓冲区高速缓存,则可以调低 Linux 的 Oracle SGA 基地址和映射基地址(前面章节中已经说明),以增加间接缓冲区窗口的大小。在特定条件下执行此操作可能会略微提高性能,因为更大的间接窗口减少了将间接缓冲区映射到 Oracle 地址空间的开销。默认的间接窗口大小是 512MB。要增加此值,需要在启动 Oracle 实例前将环境变量 VLM_WINDOW_SIZE 设为窗口大小的字节数。例如, export VLM_WINDOW_SIZE=1073741824 将间接窗口的大小设为 1GB。 设置的任何值应该是 64KB 的倍数。 注意: ? 将缓冲区高速缓存的大小(或间接窗口的大小)增加得过大会导致 Oracle 在启动时出现 “attach errors”。 ? 如果试图使用调低 SGA 基地址的 Oracle 二进制文件却没有调低 /proc/<pid>/mapped_base 的值,则在启动时会遇到不可预知的结果(从 ORA-3113 错误到附加错误等)。 ? 如果没有增加 shmmax 的值,则在启动时会遇到附加错误。 大型页面 Linux 内核中的常规页面框架的大小为 4KB。Advanced Server 2.1 允许 Oracle9iR2 使用大型页面(2MB 或 4MB)分配 SGA。为 SGA 使用大型页面可以改善性能,这有几个原因:

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 11 页

? IA-32 处理器在 4KB 的页面中处理内存,使用 2 或 3 级页面

表将虚拟地址映射到物理地址。在内部使用 TLB(Translation Look-aside Buffer)项来缓存此地址转换,因而 cpu 不必在每次访问内存时遍历页面表以找到物理地址。处理器中有极少的 TLB 项,因此 Oracle 等访问大量内存的应用程序具有很高的 TLB 失误率。支持大型页面时,处理器在 4MB(或 2MB,根据模式而定)页面中处理内存。在此情况下,TLB 中的 PTE(页面表项)项将覆盖 4MB 而不是 4KB(内存增多 1024 倍)。TLB 的失误率显著降低,因为在访问地址 A、A+4KB、A+8KB … 直到 A+4MB 时不再导致 TLB 失误。

? 页面表显著减小,从而改善了对内存的使用。这是由于 1024 4KB

PTE 现在由一个 4MB PTE 进行处理。

? 还可获得更好的性能,因为不进行大页面的交换,这意味着整

个 db_block_buffers 锁定在物理内存中。由于内核不必‘考虑’ 交换这些页面,系统性能得以提高。由于不必为这些页面预先 分配交换空间,因而具有更多的交换区域以及更少的页面缓存 复杂性。

启用大型页面的说明:

? 在内核引导选项中,将 “bigpages=<size>MB” 添加到引导加

载器文件(例如 /etc/lilo.conf),其中 size 是适合于系统的 MB 值。

? 设定 /proc/sys/kernel/shm-use-bigpages 文件包含数值 2。使用

sysV 共享内存(与 shmfs 相对)时存在其他可能的值,在没有 bigpages 时为 0,有 bigpages 时为 1。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 12 页

可以通过以下公式获得系统的 bigpages 最大值:

bigpages 的最大值 = HighTotal / 1024 * 0.8 MB 其中 HighTotal 是从 /proc/meminfo 获得的千字节值。假设保留 20% 的内存用于内核簿记。例如,8GB RAM 的机器具有 7208944 KB 的 HighTotal,因此 bigpages 最大值约为 5631MB。如果 bigpages 的值设置很高,则用户连接可用的内存将很低。

在用户数量和 bigpages 的值之间有一个平衡。如果我们可以估计用户连接的最大数量以及每个用户连接使用的内存数量,则可以按照以下方法计算 bigpages 的精确值:bigpages = (HighTotal – 最大数量的用户连接所需内存的 KB 值)/ 1024 *0.8 MB

进程调度程序

进程调度程序负责控制进程访问 CPU。Advanced Server 2.1 使用新的调度程序,克服了以前设计的许多弊端。以下一个是汇总改进列表,基于 2002 年 1 月 3 日 Ingo Molnar 关于 Linux 内核邮件列表的描述。

?

? O(1) 固定时间调度算法。 新的调度程序消除了大型的运行队列锁,实现了每个 CPU 的运

行队列和锁。这样允许并行调度各 CPU 上的任务,没有相互的锁定,促进了 SMP 的可伸缩性。

? 旧的调度程序在繁重的负载条件下产生 CPU 间的大量进程迁

移。新的调度程序按每个 CPU 分发时间片,实现 CPU 的亲和性,不必进行全局同步或重新计算。

? 调度程序跟踪线程的高速缓存覆盖区,如果在给定时间内它们仍

然在缓存中则不将它们移开,以此实现高速缓存的亲和性。这样改善了进程的高速缓存命中率。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 13 页

可靠性的增强

为改进可靠性和稳定性,对 Advanced Server 2.1 上的 Oracle9iR2 进行了大范围的工作负载测试,其目的是改进对资源短缺处理的弹性。一个强健的企业级操作系统必须处理在峰值使用时间的大量需求而不出现故障。此外,在用户负载超出系统容量时,企业级系统的性能应该平缓下降。Oracle 和 Red Hat 协作,在整个软件栈(数据库和内核)中识别“断点”,并增加了很多增强特性,以改进高用户负载下的稳定性。在 IO、内存管理、网络和进程调度方面进行了增强。对 Oracle9iR2 和 Advanced Server 内核均进行了加固,以支持单节点中大量的数据库用户以及 RAC 多节点配置。例如,在并发用户数量超出系统容量时,Oracle Applications 11i 的工作负载性能将平缓降低。本节中描述一些改进稳定性和启用平缓降低的重要增强特性。 高端内存 PTE 补丁

在前面章节中曾提到,IA-32 系统物理内存的第一个 gigabyte (GB) 称为“低端内存”。1GB 以上的物理内存称为“高端内存”。在旧的内核中,Linux 只能在低端内存中分配页表项 (PTE),其限制为 1GB。对于 Oracle9iR2 等使用大量内存和多个进程的应用程序,PTE 的总量很高。当更多的用户连接到数据库时,内核将会用尽 PTE 的空间,即使还有空闲的内存和交换空间,系统也会挂起或崩溃。 高端内存 PTE 补丁允许 VM 使用“高端内存”池分配 PTE。当连接到系统的用户数量增加并产生额外的进程时,存储 PTE 的区域溢出到高端内存,允许系统支持比以前内核允许的数量多 3 到 5 倍的用户数量!此外,当用户数量增加到超过系统容量时,数据库的响应时间逐渐降低,最后将不接受新的数据库用户连接。Advanced Server 内核不会如同先前所描述的早期版本内核那样发生崩溃或 挂起。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 14 页

改进的 Oracle9iR2 RAC 可伸缩性

对于 Oracle9i 以及早期版本,RAC 集群管理器使用 TCP/IP 协议在集群的节点间进行通信。每个集群管理器进程的 TCP 连接数量与用户计数产品和节点数量成正比增加。在具有大量节点(例如,八个或更多节点)的集群中,对每个进程的 TCP/IP 连接数量的限制限制了整个集群中并发数据库用户连接的总数。

在 Oracle9iR2 中,集群管理器使用 UDP 协议在集群的节点间进行通讯。由于 UDP 是一种非连接的协议,由每个进程的 TCP/IP 连接的最大数量所产生的限制在这种情况下不起作用。这允许具有大量节点的 Linux RAC 集群可以将并发用户数量扩展到远高于 Linux 上的 Oracle 的早期版本的并发用户数量。

可管理性的增强

Oracle 和 Red Hat 正在积极合作增强可管理性,它将促进易用性并改进对 Linux 上的 Oracle 产品的支持性。尽管此项工作的大部分仍在进行之中,但本节描述发布 Red Hat Linux Advanced Server 2.1 上的 Oracle9iR2 时提供的一些新的增强特性。

lsraid 实用工具

有一个示例是由 Oracle 创建的 "lsraid" 实用工具,用于软件 RAID 存储管理。以下是 Advanced Server 2.1 的 “man page” 对 lsraid 的说明。“lsraid 是用于查询 Linux md 设备的程序。它可以说明属于它的组合设备和块设备。它还可以提供适合于包括在 /etc/raidtab 配置文件中的 md 设备的说明。

lsraid 还能够在在线和离线设备上运行。它可以通过内核接口来阅读在线设备并提供关于该设备的信息。当设备离线时,lsraid 可以查看任何属于 md 设备一部分的块设备,并读取持续的 md 高级块获得信息。”

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 15 页

网络控制台和停机转储程序

Advanced Server 2.1 捆绑有 Red Hat 的第一个“停机转储”程序。网络控制台功能提供将所有内核消息(包括 Linux 崩溃标识消息)通过网络记录到中心服务器的功能。该工具提供系统和内核日志的集中而一致的视图,能够在客户处提供对问题更加快速的解决方案。有关细节请参考 Red Hat 网站上标题为 “Red Hat, Inc.’s Network Console and Crash Dump Facility” 的白皮书

/support/wpapers/redhat/netdump/index.html 集群的管理

Oracle 集群管理器是 Oracle 的 RAC 体系结构的一个组件。集群管理器提供集群成员和节点监视服务。集群管理器功能的一个至关重要的部分是将“发生故障”的节点与集群隔离开,通过由 Linux 的 watchdog 设备进行硬件节点的重新启动来实现这一功能。Oracle 已经对监视代码执行了若干增强,以改进 Linux 上 RAC 的管理。 例如,监视定时器边距是由加载监视模块时指定的 soft_margin 参数定义的。但是,在以前的内核中,没有在运行时从内核获得

soft_margin 值的机制。这需要用户为镜像 soft_margin 的集群管理器显式地设置一个额外参数。Oracle 已经在 Advanced Server 2.1 中加入了代码,允许集群管理器在运行时通过 ioctl 调用从内核获得 soft_margin 值。

Advanced Server 2.1 上的 Oracle9iR2s 的总体 I/O 保护解决方案优于以前 Linux 上的 Oracle 版本所实施的 I/O 保护方案。例如,在对该节点上的数据库实例执行 “shutdown abort” 命令后,默认的配置将不会导致硬件重新启动。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 16 页

对 64 位的支持

引入基于 64 位 Itanium 的系统后,Linux 已经在 Intel 平台上获得了性能和可伸缩性的显著提高。从 Oracle8i Release 8.1.7 版开始,Oracle 已经在 IA-64 上发布了其数据库软件的开发人员版本。IA-64 上的 Oracle9iR2 产品版本将与基于 Intel 的 Itanium 2 处理器的系统具有相同的可用性。

IA-64 上的 Oracle 将能够扩展到更多数量的用户,支持更大的 SGA 分配,并提供比 32 位 Linux 上的数据库明显提高的 CPU 和 I/O 容量。Oracle 与 Red Hat、Intel 和 OEM 伙伴紧密合作,以利用基于 Itanium 2 的系统中所有改进的特性。除了包括在 32 位版本中的所有增强特性以外,IA-64 上的 Red Hat Linux Advanced Server 2.1 将包括大量特定于基于 Itanium 2 的系统的增强特性。

结论

Oracle 一直致力于与 Linux 合作。为进一步增强 Linux 上的 Oracle 平台,Oracle 已与 Red Hat 密切合作,以定义和开发高端性能、可靠性和可管理性所需的增强特性。利用 Red Hat Linux Advanced Server 2.1 所提供的新特性,Linux 上的 Oracle 提供了企业级的性能和稳定性,同时维持了在 Linux 上进行部署的成本优势以及商品级硬件平台。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 17 页

Linux上的Oracle9iR2巧巧读书

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1 的性能、可靠性和可管理性的增强特性

20xx年6月

作者:Jamshed N Patel

协作者:Van Okamura, Lance Larsh

Oracle Corporation

全球总部

500 Oracle Parkway

Redwood Shores, CA 94065

U.S.A.

全球咨询热线:

电话: +1.650.506.7000

传真: +1.650.506.7200

Oracle 是 Oracle Corporation 的注册商标。

本文中提及的各种产品和服务的名称可能是

Oracle Corporation 的商标。其它所有提及

的产品和服务名称可能是各自所有者的商标。

版权所有 ? 2002 Oracle 公司

保留所有权利。

Linux 上的 Oracle9iR2:Red Hat Linux Advanced Server 2.1

的性能、可靠性和可管理性的增强特性 第 18 页

更多相关推荐:
读书报告范文

悦读会书报告读米勒管理困境关于科层失灵的探讨政法xxxxxxxxxxxxxxx1悦读会书报告读米勒管理困境关于科层企业管理困境的探讨对于作者盖瑞J米勒GaryJMiller知之甚少只了解其为美国华盛顿大学StL...

读书报告(标准版)

季羡林谈人生读书报告1作品介绍本书是季羡林先生散文之集大成季羡林先生以北人治南南亚之学学成西方而精通东方东方之学学问好人人都知道散文写得好却容易被忽略其实他的文章一直伴随着他的学问是他学问生命的另一种形态季羡林...

读书报告格式及范文

读书报告格式及范文读书报告格式及范文一读书报告有没有一定的格式对初写读书报告的同学来说学校会有一般的格式要求让其有所遵循一般地只要有书名有作者其他可集中读后感来写最浪费笔墨的是内容概要惟一的作用是让别人知道你看...

读书报告模板

读书报告模板《XXXXX》读书报告姓名、学号一、著作基本信息作者、著作名称、(版次)、出版社、出版年份、著作来源。二、著作简介(300字左右)可包括著作背景、作者研究特色、著作基本主题及核心观点、基本方法等。三…

怎样写读书报告

什么是读书报告读书报告是大学各种课程教学的基本要求修课学生就教师所指定的读物进行研读经过充分理解吸收然后用自己的语言重行综合组织钩玄提要予以申述评论如此才能将学问化为己有留下深刻印象从而拓展知识领域厚植一生学术...

读书报告

教育技术04级读书报告目录读书报告读李伯黍燕国材的教育心理学1ltlt教学论稿读书笔记11读王策三教授教学论稿学会教学读书报告25课堂教学技能的理论与实践41合作学习读书报告54读书报告教育心理学章永生著河北教...

读书报告的格式

读书报告内容结构读书报告是一种非常有用的实用体裁它可以帮助我们记录复习学过的知识并提高我们的概括能力综合能力分析能力和评判能力读书报告的写法如下首先先按下面的提纲做一些简单的笔记1书名书名及其出版年月2种类如小...

读书报告

我这次读的是作为第二语言的汉语本体研究陆俭明著外语教学与研究出版社出版这是一本论文和演讲集合起来的著作书中内容有重复表达的地方作者认为汉语作为第二语言之本体研究应包括五部分的内容第一部分是根据汉语作为第二语言教...

实践论读书报告

实践论读书报告11303041付彬毛泽东的著作从来就不是纯理想化理论化的其理论也一直结合着中国的实际国情在我国革命过程中发挥了重要的领导作用19xx年7月正是中国革命的生死关头党内却出现了教条主义和经验主义误导...

实践论读书报告

实践论读后感通过实践而发现真理又通过实践而证实真理和发展真理这就是真理的发展过程从实践到认识再从认识到实践如此实践认识再实践再认识循环往复以至无穷一步步的深化和提高这就是认识发展的总过程这段时间以来通过对毛泽东...

西游记读书报告

西游记读后感西游记无论是电视剧还是动画片我想应该每个人都看过对里面的故事都能如数家珍了我特意去借了本原著来看又有一番别的体会西游记作者吴承恩15061582字汝忠号射阳明代文学家明代淮安河下人少年时吴承恩喜听淮...

论自由 读书报告

论自由的尺度文章摘要论自由一书是约翰密尔的主要代表作之一此书体现了十九世纪五十年代到六十年代间英国资产阶级的要求是十九世纪西方资产阶级社会科学中的一部重要著作他在书中主要论述了个人自由与社会自由两者错综复杂的联...

读书报告(51篇)