别理我 烦着呢

2008年8月4日星期一

翻译:Solaris内核架构 (第一章)

1.1. Solaris 10, Solaris 9, 和 Solaris 8的关键Feature
这一节件den总结一下这一版的书所涵盖的Solaris发行版本的关键Feature.更完整的可以在docs.sun.com里面去找.

记住,每个版本的Solaris都是前一个版本的适当的超集,比如,在8里面发现的Feature会滚进9里面,当然10也会从包含8和9里面的.前面版本的Feature在后面的版本可能会被增强.这里的例子包括UFS登陆,(在7里面被引入的,在8和9里面被改进), 动态亲密共享内存Dynamic Intimate Shared Memory(DISM, 在8引进, 9和10 改进)

继承规则也有明显的例外,那就是硬件支持.每个本版的Solaris都会放弃对一些老旧的硬件的支持.比如, 10不支持32位版本的SPARC, 或者UltraSPARC I 处理器(1995年发布的). SPARC版本的Solaris10是一个64位Only的操作系统,仅支持UltraSPARC II,UltraSPARC III, 和UltraSPARC IV以及更新的处理器. 当然32位的SPARC程序还是能完美的运行在64位的Solaris10核心上面的. Solaris10 也支持32位的Intel-X86 架构 64位的AMD大锤技术

1.1.1. Solaris 10
Solaris 10里面继承的新技术列表展现了量产的操作系统中的新发明

预测性自我修复
预测性自我修复这个术语描述的是Solaris缺陷管理和Solaris服务管理技术的整合带来的好处.预测性自我修复最大化了Solaris系统极其提供的服务在硬件故障时的可用性.开发出了用语事件侦测,隔离,动态关闭错误组建的设施,以及改进的消息和服务管理器.

服务管理框架(SMF)
SMF提供Solaris内部的统一模型用来管理服务.服务的定义是一个,或者一组被系统管理起来的程序.可以是传统的服务比如rlogin, ftp,NFS,或者客户的应用程序服务.传统的管理这些服务的方式是通过使用启动脚本和状态/配置信息,典型的是/etc目录下的文件的形式.SMF提供一组命令,工具和文档来简化之.不仅简化启动,停止,重启,还负责定义服务之间的依赖关系(译者注:这他妈的不是Windows的Services.msc么?)SMF框架是和前面提到的预测性自我修复整合的.所以,可以健壮的检测和管理特定服务的错误.

Solaris缺陷管理
这个全新的缺陷管理软件架构结合了若干个软件组建,包括一个用来发送和接受错误和缺陷信息的事件协议,一个缺陷诊断引擎,一个新的编程接口的集合,改进了诊断,隔离,恢复和动态关闭缺陷硬件的能力.以缺陷为忠心的软件模型将相关的错误报告到二进制的由事件协议定义的临时流中并且分发到适当的诊断引擎.软件能够诊断缺陷,生成特定的关于缺陷的信息供系统管理员使用.如果可能的话,会自动采取修改措施,比如将出错的处理器断开.


Solaris Zones.
Zone是一个软件划分工具,可以在一个操作系统内核上创建和管理多个虚拟的操作系统之行环境.对于处理器,永和,和管理员来说,每个Zone(虚拟环境)看起来就像是一个系统,并且和同一内核实例上的其他Zone相互隔离.隔离带来安全性,因为Zone里运行的进程对同一内核其他Zone里运行的进程是不可见的.唯一的例外是全局Zone,这是主Zone,在其中运行的是Solaris内核实例.该内核实例上运行的所有的Zone里的进程对全局Zone都是可见的.

Zone还提供一个资源管理容器,这样可以配置创建特定应用程序(Web服务器, 数据库服务器,等等)的Zone以使用部分系统中可用的硬件资源.

更详细的关于创建,管理和使用Zone的信息,请参阅System Administration Guide: Solaris Containers, Resource Management and Solaris Zones

动态资源池Dynamic resource pools (DRP).
资源池是在Solaris9中被引入的.他们为协助一个或者多个处理器应对一个或者一组应用程序提供一个永久的配置机制.还有,资源池允许为在池中启动的应用程序建立一个默认的调度类型,比如fair share 或者fixed-priority classes.在Solaris10 中, 一个新的不见动态的根据设备利用率,负载和属性调整指派的池资源.一个新的守护进程,poold,当DRPs被配置好之后始终处在活动状态. 它监控系统的状态,状态和池配置属性的相互关系,根据需要做出动态调整.比如,如果资源池A被配置成最多运行掉80%的利用率,并且在能承受的范围内超过了这个极限值,poold会从别的使用率不足的池指派更多的CPU资源.poold所做的所有的改变都有log记录,DRP框架提供一个丰富的属性定义集合,包括各种约束和对象.

更详细的关于创建,管理和使用动态资源池的信息,请参阅System Administration Guide: Solaris Containers, Resource Management and Solaris Zones

物理内存控制
有了Solaris9引入的项目框架,就可以限制一个进程在任何时间点上能使用的物理内存了.一个叫做rcapd的守护进程在Solaris10 被引入,它可以监视运行中的进程在通常时间段的物理内存使用情况,如果进程超过了配置的上限,会加强物理内存的caps.有了rcapd,进程如果多用了内存,会被有效的针对自身进行换页,这样就不会挤兑到别的运行中的进程.

更详细的信息,请参阅System Administration Guide: Solaris Containers, Resource Management and Solaris Zones

动态跟踪器(DTrace).
往应用程序,用户进程和Solaris内核里面插入探针.要想使用DTrace,编程触发探针,触发后每个探针在程序执行的路径的特定点上收集数据,然后呈现出来.DTrace探针类似于软件传感器,有上千种软件传感器可供动态打开或关闭,可以在整个执行路径上记录数据,从用户级别的进程到整个内核

DTrace提供你理解系统行为,分析性能问题,研究改进应用程序性能,发现异常行为根源所需要的所有信息.在命令行上使用一个新的工具叫做dtrace(1M)来激活探针,收集数据.还有,一种新的脚本语言,D,允许管理员,开发人员和性能分析师收集,提炼,重用脚本来分析系统行为和性能

DTrace是为重要产品环境而从头设计的.DTrace是安全的,其实现是伴随这严谨的安全措施和错误检查.当没有DTrace探针被打开的时候,DTrace就像不存在一样.这是因为DTrace的指令是在探针激活后被动态插入到运行的系统中的.DTrace逐字逐句插入=指定的探针指令到代码中恰当的位置,典型的情况是,一个函数的入口和return点,然后等探针被取消后恢复指令流到原始状态.这意味着,当没有探针被启用时,指令流中是没有DTrace代码存在的.实际上DTrace的探针作用和启用的探针数量相关:启用少量探针将不会导致可观的探针效果,而在一个繁忙的系统中启用大量探针将导致某种程度的性能降低,但是绝对不会危及到系统完整性.

进程权限管理Process rights management.
传统上,需要超级用户(root)权限来执行特殊的任务,使用某些功能.但是,提供超级用户对用户区域的访问会带来安全风险,而且威胁整个系统的完整性和可用性.超级用户的一个简单的错误会搞出灾难性的后果.比如,在根目录试试看rm -r *.进程权限管理定义一组可以被指派个特定用户或角色的权限,而且是全系统内有效.权限是让进程在指定的范围内,按预先定义的动作执行制定的操作.例如,使用DTrace, 改变文件所有者,使用高精度的计时器,提高进程的优先级,使用实时的调度类型.


TCP/IP 性能
一老钵子工程(译者注:是工程量,不是,但约等于是,工程师数量),被搞来改进Solaris 10的TCP/IP性能,重点就是网络吞吐能力(典型的表征是每秒传输多少bit),建立和解除的连接,首字节响应时间,连接和CPU的可扩展性(CPU越多,连接数越多的意思),效率(搞定特定负载需要的CPU数量).增加性能和效率等已经实现了,手段包括去掉TCP/IP协议层的STREAMS结构,实现一个worker线程模型来处理更高的收包率,改进硬件缓存的使用等.

x64架构的支持
自从Solaris2.1就开始支持Intel X86架构了.随着基于AMD Opteron处理器的服务加入到Sun的硬件产品中,支持AMD64 架构也成为开发Solaris10的一个重要部分.除了基本的移植工作外,花费大量人力物力优化,调试,以及native支持64bit的基于Opteron处理器的内核. Solaris10支持32位x86处理器和32bit/64bit的Opteron处理器.当然,支持多处理器,有杰出的可扩展性.


更齐全的新功能列表上这找去 :)
http://docs.sun.com/app/docs/doc/817-0547


1.1.2. Solaris 9
Solaris9提供了一把新功能,把其他商用操作系统甩了老远,包括,内存性能增强,一组新的资源管理工具,新的调度类型

支持多重页面尺寸.
内存分配是以页为单位的,默认尺寸是8Kbytes.不过,UltraSPARC硬件支持更大的达到4M的页面尺寸.在命令行可以设置.更大的页面可以为需要分配大物理内存的程序改进性能.

内存位置优化MPO
在Sun的高端服务器上,应用程序可以通过将物理内存页面换到离执行该程序的处理器最近的内存上来改进性能.这种将执行中的线程和其用到的内存放的较近的做法减少了内存操作的反应时间,改进了性能.MPO紧密集成在Solaris的内存分配分发核心代码中,维护物理内存的分配,使其尽可能靠近线程使用的处理器.

动态锁定共享内存Dynamic Intimate Shared Memory (DISM).
锁定共享内存是Solaris2.6引入的.通过为共享块分配大内存页面,锁定内存中的页面,在所有共享内存的进程间共享低级的页面交换信息来改进System V的共享内存.DISM动态改变共享块的尺寸,启用动态增加内存,重分配数据库缓存而无需重启数据库进程.Solaris9之前的DISM不支持大页面.从Solaris 9 9/02 开始支持

资源管理器Resource Manager (RM).
Solaris 9集成资源管理器.


公平分享和指定优先级调度类型Fair Share (FSS) and Fixed Priority (FX) scheduling classes.
除了传统的时间共享TS,实时RT 和交互IA的调度类型外, Solaris9增加了FSS和FX类型. FSS取代了只恰的SHR类型,允许按照用户的定义分配处理器时间给内核现成. 在FX类型下,线程的优先级在整个生命周期中不会被内核改变. FSS是资源管理器的一个组成部分,使用资源池来管理共享分配.

UNIX文件系统(UFS)增强.
改进了logging和直接I/O并发读写的性能

Solaris存储管理Solaris Volume Manager (SVM)
集成进了Solaris9, SVM允许创建RAID 0, RAID 1, RAID 10, RAID 5 存储, 软分区支持, 去掉了每个盘最多7个分区的限制.

线程库Threads library.
libthread.so, 号称有显著性能提升,将多线程程序的行为转换成单层线程模型(译者注:搞不明白...-_-)
boasts substantial performance improvements, and it transitions to a single-level threads model as default behavior for multithreaded applications.

1.1.3. Solaris 8
8的就不翻了,2000年的东西了都是...

0 条评论:

发表评论

订阅 博文评论 [Atom]



<< 主页