Solaris 8内存管理机制研究
SOLARIS课程08-进程管理
1-3、进程查询
pgrep命令
用途:已知进程名查ID 格式:
pgrep -u oracle pgrep -t pts/3 显示oracle用户所有进程号 显示终端所有进程号
ptree命令
用途:出进程树 格式:
ptree -c 显示详细进程树 ptree -c username 显示某用户进程
在终端2以tom用户登录 $ ksh 开启ksh $ vi 111 启vi一个进程 在终端1查看tom用户的进程 # ps -f -u tom UID PID PPID C STIME TTY TIME CMD tom 3047 3046 0 21:58:11 pts/2 0:00 vi 111.txt tom 3046 3042 0 21:58:03 pts/2 0:00 ksh tom 3036 3035 0 21:56:46 ? 0:00 /usr/lib/ssh/sshd tom 3042 3036 0 21:56:49 pts/2 0:00 –bash 杀死tom用户的原始登录shell # kill -9 3042 开启的ksh变为孤儿进程 # ps -f -u tom tom UID PID PPID C STIME TTY TIME CMD tom 3046 1 0 21:58:03 ? 0:00 ksh tom 3036 3035 0 21:56:46 ? 0:00 /usr/lib/ssh/sshd
常用的选项:-ef
# ps -ef UID PID root 0 root 1 root 2 root 3
查看所有终端下所有用户的进程 查看某终端下进程 查看oracle用户进程 以长格式列出进程信息
列出目前系统中活动进程的详细信息
Solaris 8 产品说明说明书
Solaris8(Intel平台版本)2/02发行说明Sun Microsystems,Inc.4150Network CircleSanta Clara,CA95054U.S.A.部件号码816-3444-112002年2月Copyright2002Sun Microsystems,Inc.901San Antonio Road,Palo Alto,California94303-4900U.S.A.版权所有。
本产品或文档受版权保护,其使用、复制、分发和反编译均受许可证限制。
未经Sun及其授权者事先的书面许可,不得以任何形式、任何手段复制本产品及其文档的任何部分。
包括字体技术在内的第三方软件受Sun供应商的版权保护和许可证限制。
本产品的某些部分可能是从Berkeley BSD系统衍生出来的,并获得了加利福尼亚大学的许可。
UNIX是由X/Open Company,Ltd.在美国和其它国家独家许可的注册商标。
Sun、Sun Microsystems、Sun标志、、AnswerBook、AnswerBook2、DiskSuite,HotJava,Java,JavaSpaces,JDK,JumpStart, OpenWindows,Solstice AdminSuite,Solstice AutoClient,Solaris Management Console,SunOS,XView,和Solaris是Sun Microsystems, Inc.在美国和其他国家的商标、注册商标或服务标记。
所有SPARC商标均按许可证授权使用,它们是SPARC International,Inc.在美国和其它国家的商标或注册商标。
带有SPARC商标的产品均以Sun Microsystems,Inc.PostScript是Adobe Systems,Incorporated的商标或注册商标,它们可能在某些司法管辖区注册。
Solaris系统平台Oracle数据库内存及其相关参数的使用原则
信息 (对于 M TS) 。由于这些信息是应用程序需要经常访问的 ,因此这些信息需要保持高的命中率 。共 享池是为了缓存已经被解析过的 SQL ,而使其能被重新利用 ,不再解析 。即进行软解析 ,而不是硬解析 , 这样就节约了大量的资源 ,所以期望该参数能大些 。但是该参数的增大 ,却也有负面的影响 ,因米需要 维护共享的结构 ,内存的增大也使得 SQL 的老化的代价更高 。带来大量的管理开销 ,所有这些会导致 CPU 的严重问题 。可以通过检测库缓存 (L IBRARY CACHE)命中率与检测数据字典命中率等方法来确 定共享池 Shared_pool_size分配的是否合理 。 1. 3 排序区 Sort_area_size
The Using Pr inc iples of O racle Da taba se’s EM S M em ory and Rela tive Param eters on Solar is System
ZHANG A i2jun1 , FENG Ru i2lin2 , BA I Y u1
( 1. Information Center of TIANJ IN TASLY GROUP CO. , LTD , Tianjin 300402; 2. TIANJ IN DTW. GROUP CO. , LTD , BE IJ IN 101312)
在日常的工作中 ,保持数据库运行在良好的状态下 ,是一项复杂的工作 。笔者就 O racle数据库内存 及一些参数配置的体会与大家共享 。
SOLARIS_优化
SOLARIS性能优化有时候,你没有时间去理解一些细节:用户和管理让你喘不过气来,而且你必须马上解决一个问题。
或许你是一个后备的系统管理员,那天当你的同事在十个用户冲进你们公用的办公室,要求提高性能之前外出了。
或许你是一个定了契约的系统管理员需要一个快捷的目录条记录一些可能的系统错误。
或许你已经已经一页一页地读了这本书,在寻找一个简明地参考手册,所以你可以抛开那些记满了笔记地小信笺。
在这里,我们将会总结两个常见但是并不简单地问题地一些解决方法:为了确定和解决一般常见地性能的问题,我应该查看哪部分,优化什么。
一般来说,在一个新系统里面为了确保性能最优化,我是否需要作一些优化?在我们进入到这些主题地之前,一些警告。
警告!这一章包含一些危险性很高的命令。
它阐明了很多解决办法和步骤,但是没有给出解释。
作为一个结果,它冒着把你变成一种草包性能分析家的危险(看第二章的介绍)细心一点。
五条首要的优化技巧当你看到一个系统的性能比较差的时时候,有五个最基本的问题要去查问。
注意---如果没有特别指明,所有的这一些临界的指导方针,其数据假定是每隔30秒的间隔收集一次的。
哪里是硬盘的瓶颈?几乎每一个运行缓慢的系统,都因为磁盘的I/O负荷超载。
查看硬盘,如果它的服务时间大于50毫秒,而且不止一部分繁忙。
服务时间实际上叫做"响应时间",它测量的是发出一个读请求到完成这个请求的时间间隔。
对于用户的应用程序来说,在关键的路径上经常会进行这种测量。
这是非常可能的——一个严重超负荷的磁盘的响应时间将会以千分之毫秒来计算。
(不是印刷错误)。
在Solaris系統上,你可以通过命令iostat-xnP30得到此类信息。
#iostat-xnP30....extended device statistics扩张设备的统计数据r/s w/s kr/s kw/s wait actv wsvc_t asvc_t%w%b device0.00.00.00.00.00.00.00.000c0t0d0s00.00.00.00.00.00.00.00.000c0t0d0s20.72.75.39.50.00.10.016.102c0t0d0s3....在Linux系统上,安装包含iostat命令的可选包,察看一下await的列。
Solaris启用自带多路径功能管理存储
Solaris启用自带多路径功能管理存储多路径功能允许服务器通过多个途径访问存储设备,从而提高存储设备的可靠性和性能。
当一个路径发生故障时,服务器可以自动切换到另一个可用路径,以保持存储的连通性。
此外,多路径功能还可以通过在多个路径上分发IO负载来提高性能。
在Solaris 11中,启用自带多路径功能可以通过以下步骤完成:2. 安装和配置SCSI HBA驱动程序:SCSI HBA(主机总线适配器)是用于连接服务器和存储设备的硬件接口。
在Solaris 11中,您需要安装和配置适当的SCSI HBA驱动程序来识别和管理存储设备。
可以使用devfsadm命令来配置和激活驱动程序。
3. 安装Multipathing协议:在Solaris 11中,多路径功能是通过Multipathing协议来实现的。
您需要安装和配置Multipathing协议,以便Solaris 11可以识别和管理多路径存储设备。
可以使用pkg install 命令来安装Multipathing协议。
4. 配置存储设备:一旦安装了Multipathing协议,您需要配置存储设备以启用多路径功能。
这通常涉及到在存储设备上创建虚拟卷,并为每个卷分配多个路径。
您可以使用存储设备的管理工具(如StorCLI或SMcli)来完成此步骤。
5. 配置Solaris 11多路径:最后,您需要配置Solaris 11以启用和管理多路径存储设备。
您可以使用multipath命令来查看和配置多路径存储设备。
您可以使用mpathadm命令来查看多路径的状态和信息,例如路径的数量、路径的优先级等。
在配置多路径存储设备后,您可以利用Solaris 11的存储管理功能来管理和优化存储。
以下是一些可以使用的功能:1. 路径故障恢复:当一个路径故障时,Solaris 11可以自动切换到另一个可用路径,以保持存储的连通性。
您可以配置自动故障切换的参数以满足您的需求。
2. IO负载均衡:Solaris 11可以通过在多个路径上分发IO负载来提高性能。
Oracle在Solaris下的性能与调整简介
当一个系统运行缓慢性能下降的时候,很难知道原因是什么。
是内存泄漏,磁盘子系统瓶颈,还是某个特定应用程序在可扩展性方面有限制?有一些途径可以发现和了解引起性能问题的根源,并且有可能消除它。
本文给出了从哪里入手的一些建议。
文中介绍了如何着手性能方面的考虑以及如何定位常见的性能瓶颈,还介绍了与性能密切相关一些概念,比如私有的共享内存(ISM-Intimate Shared Memory)与优先内存页面调度。
文章重点是放在Solaris 2.6操作环境下。
着手性能问题性能,或许比计算机系统其它方面的行为更需要有通盘的考虑。
为了识别来自一个或多个组件的问题根源,必须要采取结构化的方法。
实际的结果是,解决性能问题过程中最重要的一个部分是定义你正在试图解决的问题。
从实际应用的方面来讲,这意味着定义一个操作或者测试用例,从而可以:A) 知道系统当前有多快。
B) 知道系统需要快"X"倍;或者知道系统曾经在不同环境下快过"X"倍。
设置基线是开始的第一步。
性能分析是由简单明确地定义所需解决的问题开始的自上而下的一个过程。
如果你想要一个系统运行得快一些,你仍然需要定义这个系统的哪些属性是你想要改进的,以及哪些代价是你可以接受或者不可以接受的。
除非你能够明确地描述出问题症状/机会,想要识别出问题的根源只会是碰运气。
性能分析很象是侦探工作,我们通过证据和观察建立事实依据,非常小心不要陷入预先想象的与事实不符的结论中——只有在具备非常压倒性的证据时才确认猜想。
对所有假设都要怀疑。
其他人声称的事实实际上只是个可能正确也可能不正确的假设。
如果这个假设是错误的,你可能会是在不正确的依据下工作,从而得出不正确的结论。
这里有一些警告。
Solaris操作环境在大多数情形下对于工作负荷的自我性能优化都是很好的。
发行版本越新,需要手工做的性能优化就越少。
性能问题的根源经常被发现是因为一个试图优化性能的行为引起的。
Oracle数据库教程 —— solaris内存参数调整及管理
Oracle数据库教程—— solaris内存参数调整及管理一、solaris 内存参数说明shared memory:共享内存段:一个内存区域,可以被不同的进程读取。
Oracle使用它来构成SGA。
Oracle使用以下三种方法来创建一个SGA区:1.使用单个共享内存段。
2.使用连续多个共享内存段。
3.使用多个不连续共享内存段。
Oracle优先使用第一种方法,如果成功,则继续初始化,不成功则使用第二种方法,再不成功则使用第三种方法。
如果再不成功,则初始化失败,Oracle报告错误代码。
Semaphore:可以看作一个标记。
可以有On和Off两种状态。
Oracle使用semaphores来实现服务器进程对SGA区的存取控制。
Shared memory 和semaphore 是Oracle在Unix上运行的重要资源。
如果Oracle 实例得不到所需要的资源,实例启动就会失败。
参数:对于运行一个Oracle实例的Solaris系统,改变/etc/system文件中的一些关于共享内存的参数,以使Oracle实例可以正常运行。
如果有多个实例的话,还需根据下面方法重新计算某些值。
shmmax含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。
这个设置也不影响操作系统的内核资源。
设置方法:0.5*物理内存。
如果物理内存为20G,则 0.5×20G×1024×1024=10485760例子: Set shmsys:shminfo_shmmax=10485760shmmin含义:共享内存的最小大小。
设置方法:一般都设置成为1。
例子: Set shmsys:shminfo_shmmin=1shmmni含义:系统中共享内存段的最大个数。
推荐值为100或者128。
例子:Set shmsys:shminfo_shmmni=100shmseg含义:每个用户进程可以使用的最多的共享内存段的数目。
基于Solaris操作系统内存资源泄漏和预防的研究
第4 期
( saf %s.tn2; cn( ”s ig) ” r
sr g =srn 2 tn l t g ; i i
基于 Sli操作 系统 内存资源泄漏和预防的研究 or as
f es ig) r ( r 1 e tn ;
r tr : eu n0
・5・ 2
}
f e tn 2; r (r g) e si
正常情况下 ,用户进程使用完这块 内存后 ,应通过内存管理的有关指令释放内存块。主动通知操作系 统回收这些堆 内存以便重用。如果 南于用户应用设计上的缺陷导致在某些情况下程序没有主动地释放相应 内存并通报操作 系统 , 而后应用又失去了对这块内存 的管理 ,则该堆内的相应存储块将成为既不受程序控
收稿日期:20— 3 1 0 7 0— 0 作者简介: 超(9 1) 16 -.男 .黑龙汀齐齐lJ,i i ,t  ̄ l 人.硎教授,高级_ 师,学士,主要从事计 机应Ⅲ研究. e i T 电子信箱 e6@13 ol v3 6. n “ 游离”内存块 , 形成 内存泄漏 。
2 内存泄漏形成机 理
内存泄漏在 U I NX、L u 和 Sl i系统上出现iJ 率要大于 Wi ( 系统 ;内存泄漏常出现在多道程 ix or n as  ̄L ' J , nI d、 v
序的多进程中,且泄漏速度很快 ,在单片户下的单进程模式下无此问题。 j
操作系统干预下完成 的资源分配。用户 内存的申请是 南相关的系统调J 或指令运行实现的 ,内存科学管理 十 j 在程序运行过程中起着非常重要的作用。
在 Sl i平 台上的实际编程 中, or as 从作业角度正确理解 内存管理机制的能力与局限性至关重要,当作业
运行完毕不再需要所分配的内存兀, 寸 进程便会释放内存 区域。存储释放实际上是解除逻辑地址空间与物理 地址空间的对应联系, 并释放物理空间。存储释放程序将 回收的内存区域重新设定为 自由区 , 并将其安排 进人 自由区队列。进入 自由区队列的具体位置也必须依据分配算法。
udf文件系统Solaris 8 新增功能一览--(4)通用磁盘格式 (UDF) 文件系统
udf文件系统:Solaris 8 新增功能一览--(4)通用磁盘格式 (UDF) 文件系统疯狂代码 / ĵ:http://UnixFreeBsd/Article26320.html 本段讲述 Solaris 8 操作环境中影响文件系统管理和记录新增特征 通用磁盘格式文件系统 此 Solaris 发行版本支持"通用磁盘格式"(UDF) 文件系统 (光媒体上信息技术行业标准格式) 可使用 UDF 文件系统在下列组件 (如果这些组件含有 UDF 文件系统) 上数据: CD-ROM 磁盘和软盘 高密度数字视盘或数字视盘 (DVD) --在所支持平台上 DVD-ROM UDF 文件系统以动态可装 32 位和 64 位模块形式提供它包含用于在 SPARC 和 IA 平台上创建、安装和检查文件系统系统管理公用 安装了 UDF 文件系统后用户就可以从设备中读、写或列出文件并且应用也可以用标准系统呼叫访问 UDF 文件和目录 有关详细信息请参见 Administration Guide, Volume 1 和手册页mount_udfs(1M) Solaris 7 11/99 发行版本中首次提供此特征 NFS 记录 NFS 记录允许 NFS 服务器提供在其文件系统上执行文件操作记录 该记录包括记录访问什么、何时访问及访问者是谁信息 包含此信息记录位置可以通过组配置选项指定 这些选项还可以用于选择应该记录操作 此特征对使匿名 FTP 档案可用于 NFS 和 WebNFS 客户机站点尤其有用 有关详细信息请参见 Administration Guide, Volume 3 IA: XMEM 支持 "扩展内存"(XMEM) 支持提供了个使单个 32 位进程能够对大于 4 GB 物理内存进行高效分配和管理机制XMEM 特征实现为个文件系统 (xmemfs)系统管理员可以安装和使用这个文件系统为应用保留内存 有关详细信息请参见手册页 apptrace(1) Solaris 7 11/99 发行版本中首次提供此特征 WebNFS Beans 组件 WebNFS Beans 组件含有个 XFileChooser 类它扩展 Java 2 API JFileChooser 图形组件 任何需要显示文件选择器以使用户能选择文件来输入 (打开) 或输出 (保存) Java 2 应用都能使用此 bean 使用XFileChooser应用可以通过用 NFS URL 命名来访问本地磁盘或 NFS 服务器上文件 有关详细信息请参见 WebNFS Developer's Guide 在 UFS 文件系统上延迟存取时间更新 dfratime 和 nodfratime 这两个新增安装选项可以启用和禁用 UFS 文件系统上延迟存取时间更新 如果启用文件系统写存取时间更新可能会延迟直到以其它原因 (不是更新存取时间) 访问磁盘为止 缺省动作为dfratime 使用 nodfratime 选项可禁用此特征 另外无论 dfatime/nodfratime 中哪个值mount 选项 noatime 都会关闭访问时间记录 2009-2-12 4:23:31疯狂代码 /。
Solaris 进程 heap段内存释放小研
Solaris 进程heap段内存释放小研分类:Solaris 研究2011-05-24 15:41 29人阅读评论(0) 收藏举报作者: uNDeaDEmail: someonebw@Blog: /undead转载请注明出处最近观察生产平台上面的应用,发现应用进程所占用的内存是只增,不减,于是想深入看看,具体造成的原因。
PID USERNAME SIZE RSS STATE PRI NICE TIME CPUPROCESS/NLWP5506 bwisp 1631M 1501M sleep 53 2 31:27:16 4.1% bwisp/275标红的地方就是的程序运行时间也就是5.12日开始的,到今天也没有几天,初始才300M;现在内存已经占用了1.6G-bash-3.00$ pmap -x 5506|more5506: /sims/bwisp/bin/bwisp -dAddress Kbytes RSS Anon Locked Mode Mapped File 0000000100000000 512 480 - - r-x-- bwisp000000010017E000 112 24 24 - rwx-- bwisp000000010019A000 1616168 1529064 1488736 - rwx-- [ heap ]//确实很大FFFFFFFF4E600000 88 88 - - r-x-- groupsend.soFFFFFFFF4E714000 24 24 24 - rwx-- groupsend.soFFFFFFFF4E800000 56 48 - - r-x-- libgradequery.so FFFFFFFF4E90C000 16 16 16 - rwx-- libgradequery.soFFFFFFFF4EA00000 64 64 - - r-x-- libsmsorder.so FFFFFFFF4EB0E000 8 8 8 - rwx-- libsmsorder.so确实是heap段,占用了大部分的内存。
solaris8管理员小结
EUID:有效的uid (用su切换用户后改变),执行命令的用户
RUID:真实的uid (用su切换用户后不变),登陆的用户
*** 看二进制文件:用strings命令可以看一部分二进制文件内容
1:用pwconv命令同步系统passwd文件和shadow文件,同步以passwd文件为准
SLEEPTIME=4第一次输入错误隔多少秒输入第2次;RETRIES=5最多试5次;SYSLOG_FAILED_LOGINS=5表示5次失败记录到/var/adm/sulog里
/etc/default/passwd中MAXWEEKS和MINWEEKS是系统用户口令的失效日期缺省值
其中:CDE和Openwin都属于GUI
SUN OS: 硬件 --> Kernol(管理硬件/管理进程/管理文件系统) --> Shell --> Application
在/bin/*sh对应的shell:
B shell --> sh C shell --> csh K shell --> ksh bash --> bash tcsh --> tcsh zsh --> zsh
pkginfo -d /光盘路径/ | more 看光盘上指定目录下的pkg (当前路径用.)
pkginfo -d /光盘路径/ -l pkg名 看光盘上指定目录下的pkg的详细信息
pkgrm pkg名 删除pkg
pkgadd -d /光盘路径/ pkg名 添加pkg (如果大量的pkg要安一般有installer安装脚本)
2:用#touch /var/adm/loginlog创建loginlog文件会记录连续五次登陆失败的登陆信息(包含尝试的登陆名/登陆窗口/登陆时间)
Solaris系统性能管理演示文稿
• Amount of resources consumed during action
第7页,共70页。
性能的层面
应用 操作系统 硬件 网络 商务
第8页,共70页。
Solaris 性能分析
第9页,共70页。
基本的原则
系统是一系列的资源
• CPU(s)
• memory • busses
Solaris系统性能管理演示 文稿
第1页,共70页。
优选Solaris系统性能管理
第2页,共70页。
我们首先要做的
问客户正确的问题
• 打没打补丁?
• 在哪个环节出现问题? 吞吐量, 响应时间, 网络, I/O, 应用,…....
• 明白客户怎么和怎样提出要求
测试和想法是否合理 ? ‘它应该跑得更快 ...’, ‘很多的CPU空闲 ...'
iostat
r/s, w/s: Average reads/writes per second.
Kr/s, Kw/s: Average Kb read/written per second.
wait: Time spent by a process while waiting for block (eg disk) I/O to complete.
• 应用 • 数据库 • 硬件 • Solaris 内核参数
第11页,共70页。
潜在的瓶颈问题
Disk Network
Memory
CPU
第12页,共70页。
磁盘性能分析
第13页,共70页。
硬盘瓶颈
无足够空间 响应时间长 不良的规划 RAID 设定
文件系统问题
Solaris操作系统多线程安全机制的研究和应用
T es t_m ou se ( ) ; / 3 测试鼠标相应功能 3 /
Show _key ( ) ; /输出显示左 /右 /中的鼠标 3 /
3
Sola ris操 作 系 统 多 线 程 安 全 机 制 的 研 究 和 应 用
牛丽萍 孙 峰
(武汉数字工程研究 所产 品研 发部 武汉 430074)
摘 要 因多线程具有并发执行 、资源共享 、切换消耗 小等优 点被广大 程序设 计者使 用 。然而 , 它存在 的安全 性问题 引起广泛关注 。同一进程中的多线程共享其数据空间 , 会引发 临界资源 竞争等 一系列 问题 。从这 个角度 探讨在 so la ris操 作系统下多线程的安全性问题 。以绘制图形界面程序为例 , 显示了多线程的便利及其安全机制的重要 。
线程安全性是指多线程防止出现数据访问竞 争的能力 。出现数据访问竞争时 ,数据的正确性将 依赖于运行时多 个线程访问和修 改数据的次序 。 数据竞争是由于访问共享资源时缺乏或不适当地 运用同步机制引起的。如果没有正确地限定某一 时刻某一个线程可以 访问变量 , 就会出现数 据竞 争 , 此时赢得竞争的线程获得访问许可 , 但会导致 不可预知的结果 [ 1 ] 。若线程的运行时机被实时抢 占 , 运行的线程可以在任何时间中断 ,所以不能假 定先开始运行的线程总是比后开始运行的线程先 访问到两者共享的数据 。
1 引言
U n ix系统中多线程机制的开发始于上世纪八 十年代中期 , S o laris操作系统中进程模型和传统的 UN IX 进程模型有些相似 。 [ 1 ] So la ris 操作系 统在 相当程度上扩充了传统操作系统对进程的支持 , 它 支持在一个进程内执行多个线程 [ 1 ] 。这些线程共 享大部分进程状态及当前进程的地址空间 , 多个线 程可以在多处理器之间调度和并发执行。
solaris
域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。
域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。
DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串""来表示,但在文本中用"."来书写。
树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域可再进一步划分成子分区(域),每个域都有一个标签(LABEL),标明了它与父域的关系。
域也有一个域名(domain name),给出它在整个分布式数据库中的位置。
在DNS中,域名全称是一个从该域到根的标签序列,以"."分隔这些标签。
该标签最多可包含63个字符,树中每一节点的完整域名为从该节点到根之间路径上的标签序列。
如果根域在节点的域名中出现,该名字看起来就象以点结尾(实际上是以点和空标签作结尾)。
这些以点结尾的域名被称之为绝对域名(Absoulte Domain Name),不以点结尾的域名被称之为相对域名。
域名服务器的类型分为三种,下面简单介绍之:1)主域名服务器(master)每个域都有一个主域名的权威,这个服务器在Internet上注册,使该域可见。
主域名服务器是一个域或区域的管理权威。
这个服务器的主要责任就是解析域或区域内所有主机的名称。
可以使用一个或多个次域名服务器作为主域名服务器的备份。
当次域名服务器对主机名字记录采取强制终止策略。
2)次域名服务器(slave)一个或多个次域名服务器作为主域名服务器的备份,当主域名服务器没有响应时使用次域名服务器,次域名服务器定期从主域名服务器复制数据库文件。
3)缓存服务器(hint)缓存服务器没有任何数据库文件。
它主要用于使用其他的名字服务器解析远程网络的主机名。
它保存先前的解析主机记录,并在下列情况下使用:使用缓存来加速主机名的解析。
SOLARIS磁盘研究
SOLARIS磁盘研究SOLARIS是一款非常优秀的操作系统,其在磁盘管理方面也拥有着丰富的经验和功能。
本文旨在对SOLARIS磁盘进行深入研究,并介绍其特点、优缺点以及使用方法等相关知识。
一、SOLARIS磁盘管理的基本特点1、ZFS(Zettabyte File System)文件系统:SOLARIS操作系统采用了ZFS作为默认文件系统,ZFS支持存储池和快照功能,可以更好地实现数据共享和备份。
2、RAID技术:SOLARIS还支持多种RAID技术,如JBOD、RAID0、RAID1、RAID5、RAID6等,能够满足不同应用场景下的磁盘需求。
3、交换空间:SOLARIS还支持交换空间的动态分配和扩展,可以提高系统的性能和稳定性。
4、磁盘分区:SOLARIS可以对磁盘进行多种分区方式,如MBR(Master Boot Record)和GPT(GUID Partition Table)等,可以更好地实现多系统共存和数据备份。
5、iSCSI和NFS:SOLARIS还支持iSCSI和NFS协议,可以更好地实现远程存储和共享。
6、磁盘空间管理:SOLARIS提供了多种磁盘空间管理方式,如磁盘配额、磁盘限额等,可以更好地实现磁盘空间的分配和管理。
二、SOLARIS磁盘管理的优缺点SOLARIS的磁盘管理具有以下优点:1、性能:SOLARIS的磁盘管理性能非常优秀,可以满足高可用性和高负载的应用场景。
2、安全性:SOLARIS采用了严格的访问控制机制,可以实现数据的安全存储和保护。
3、稳定性:SOLARIS的磁盘管理非常稳定,可以避免数据损坏和故障。
4、可扩展性:SOLARIS的磁盘管理具有良好的可扩展性,可以支持大量的用户和应用程序。
但SOLARIS的磁盘管理也存在以下缺点:1、学习门槛高:SOLARIS的磁盘管理需要用户具备较高的Linux操作系统和磁盘管理技能。
2、需要较好的硬件支持:SOLARIS需要较好的硬件支持,如RAID卡和SCSI存储等。
SOLARIS磁盘研究的研究报告
SOLARIS磁盘研究的研究报告SOLARIS是一个功能强大的操作系统,它具备如何管理SATA/SAS/SCSI磁盘的方法。
本文将重点研究SOLARIS磁盘管理。
SOLARIS已经开发了一些命令行实用程序来处理磁盘。
例如,format是一个管理磁盘和分区的工具,而mount则是挂载文件系统的工具。
首先,我们需要了解磁盘ID:在SOLARIS中,每个磁盘都具有一个惟一的磁盘标识符(disk ID),并且可以通过“echo|/format/analyze”的命令列出。
然后,我们可以使用fdisk命令在磁盘上创建分区来使用磁盘。
例如,我们可以使用以下命令创建两个分区:# fdisk /dev/rdsk/c1t0d0p0Total disk size is 3907037168 sectors (1.8 TB)Cylinder size is 16065 sectors (8.4 MB)Partition table with a maximum of 8 partitionsc1t0d0p0: Partition table0 – 3907037167 SolarisEnter partition ID [0-7]: 0Enter starting cylinder number [0 – 8192]: 0Enter ending cylinder number [0 – 8192]: 8192Enter partition ID [0-7]: 0Enter starting cylinder number [0 – 8192]: 8193Enter ending cylinder number [0 – 8192]: 16384...此外,我们可以使用zpool命令进行出色的磁盘管理。
这个命令通过在Solaris上创建分布式存储池来管理多个磁盘(硬盘或固态硬盘)来提供数据并且提供快照和共享文件系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Solaris 8内存管理机制研究吴海燕 戚丽 冯珂摘 要:寻找性能瓶颈是性能分析中的一项重要任务,内存瓶颈的表现并不像CPU或磁盘那样直接,本文通过对Solaris 8内存管理机制的研究,给出了寻找Solaris 8系统内存瓶颈的方法。
关键词:Solaris 8,内存管理,性能优化一、问题的提出清华大学计算机与信息管理中心数据中心现有服务器近百台,其中包括了SUN Fire 15000、SUN Enterprise 5500、SUN Enterprise 5000等大型SUN服务器,Solaris 8是主流操作系统。
为了对服务器的资源(如CPU、内存、磁盘、网络)的使用情况进行长期监控,建立性能优化(performance tuning)的基准值,我们开发了一套脚本程序定时采集系统运行参数。
在长期的监控中,我们发现Solaris 8系统的空闲内存(freemem)呈现一个有趣的变化规律,如图1所示:图1 空闲内存(freemem)变化图图1是某Solaris 8系统(在下文中我们称之为15k-a)自2003年2月份以来的freemem 变化情况,横坐标是时间,纵坐标是freemem的数量,以8K字节为单位。
15k-a配置是10路Super SPARCIII CPU,10GB物理内存。
从上图可以看到在正常运行时,freemem应该是比较稳定的,15k-a主要是运行数据库,数据库在运行时会占用2G内存作为SGA区使用,因此在通常的负载下,freemem保持在6~7G之间是比较正常的。
稳定一段时间后,15k-a的freemem会持续走低,直到最低值,约为18893×8KMB,然后系统开始回收内存,我们就会看到freemem数量急剧上升。
freemem的陡降都发生在凌晨1:00之后,检查系统作业发现每天1:00都会有一个数据库备份脚本开始运行:首先是用“exp”命令给数据库做逻辑备份,然后用“cp”命令把备份出来的文件拷贝到后备存储上。
这两个命令都是正常退出,没有任何报错。
开始时我们曾怀疑是有内存泄漏,当某一天freemem大幅攀升时,此怀疑被解除了,因为如果有内存泄漏,系统是无法将内存回收回来的。
对于一个物理内存为10GB的系统来说,如果空闲内存(freemem)真的减少到不到二百兆,那将存在着严重的问题。
但奇怪的是系统的CPU使用率一直很低,所有进程的反应也很快,系统没有任何资源匮乏的迹象。
如何解释这些问题呢,为此我们对Solaris 2.x 的内存管理机制进行了研究。
二、Solaris的内存管理机制Solaris 8的内存管理为虚拟内存管理。
[1]简单地说,虚拟内存就是进程看到比它实际使用的物理内存多得多的内存空间,对于64位的Solaris 8操作系统,进程可以通过8K 大小的段寻址访问2的64次方字节的内存空间,这种8K的段被称为页(page)。
传统的UNIX通过进程(pagedaemon)完成虚拟地址和物理地址间的转换,在Solaris中这些是通过一个硬件-MMU(Memory Management Unit)-来实现的。
在多处理器系统中,每个CPU 都有自己的MMU。
Solaris 8的虚拟存储体系由系统寄存器、CPU CACHE、主存(RAM,物理内存)、外存(磁盘、磁带等)构成。
有两个基本的虚拟内存系统管理模型[2]:交换(swapping)和按需换页(demand paged)模型。
交换模型的内存管理粒度是用户进程,当内存不足时,最不活跃的进程被交换出内存(swapping out)。
按需换页模型的内存管理粒度是页(page),当内存匮乏时,只有最不经常使用的页被换出。
Solaris 8结合使用了这两种内存管理模型,在通常情况下使用按需换页模型,当内存严重不足时,使用交换模型来进行内存释放。
与传统UNIX系统相比,Solaris虚拟内存系统的功能要丰富得多,它负责管理所有与I/O和内存相关的对象,包括内核、用户应用程序、共享库和文件系统。
传统的UNIX系统V(System V)使用一个单独的缓冲区来加速文件系统的I/O, Solaris 8则使用虚拟内存系统来管理文件系统的缓存,系统的所有空闲内存都可以被用来做为文件I/O缓存,因为RAM的访问速度比磁盘快得多,所以这样做带来的性能提高是可观的。
这也意味着在存在大量文件系统I/O的系统上,空闲内存的数量几乎是0。
了解系统内存被分配到了什么地方,系统在什么情况下进行内存整理是系统管理的重要任务之一。
有了上面的基础知识,我们就可以回答这个问题了。
2.1 Solaris是如何分配物理内存的要知道一个Solaris系统的内存都被用到了什么地方,首先需要确定系统的物理内存数量,如下例所示:bash-2.03$ /usr/sbin/prtconf | grep MemoryMemory size: 8192 Megabytes在上面的例子中,系统的物理内存为8G字节。
一般来说Solaris 8物理内存的使用可分为内核保留内存、进程(包括系统进程和用户进程)内存、文件系统缓存和空闲内存四块,下面分别描述。
内核使用的内存:被映射到内核的地址空间。
随着内核模块、驱动程序载入和退出,数量会有所变化。
可以使用sar命令显示内核使用的内存数量,如下例所示:bash-2.03$ sar -k 1SunOS sun-15k-a 5.8 Generic_108528-20 sun4u 05/21/0315:01:00 sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail15:01:01 51806720 31842570 0 588922880 557618688 0 149225472 0上例中内核使用了31842570+557618688+149225472=738686730字节,即约740M字节。
crash命令可以详细地显示内核内存是如何分配的。
进程内存,被映射到进程的地址空间。
一般包括系统daemon(如cron、syslogd等)使用的内存、CDE环境需要的内存、数据库引擎使用的内存、用户分时程序使用的内存等。
pmap命令显示了进程是如何使用内存的:bash-2.03$ pmap -x 1921419214: -bashAddress Kbytes Resident Shared Private Permissions Mapped File00010000 432 432 432 - read/exec bash0008A000 80 80 72 8 read/write/exec bash0009E000 152 152 112 40 read/write/exec [ heap ]FF100000 688 688 688 - read/exec libc.so.1FF1BC000 32 32 32 - read/write/exec libc.so.1FF200000 568 568 568 - read/exec libnsl.so.1FF29E000 40 40 40 - read/write/exec libnsl.so.1FF2A8000 24 16 16 - read/write/exec libnsl.so.1FF2E0000 8 8 8 - read/write/exec [ anon ]FF2F0000 16 16 16 - read/exec libmp.so.2FF304000 8 8 8 - read/write/exec libmp.so.2FF310000 8 8 8 - read/exec libc_psr.so.1FF320000 40 40 40 - read/exec libsocket.so.1FF33A000 8 8 8 - read/write/exec libsocket.so.1FF340000 168 120 120 - read/exec libcurses.so.1FF37A000 32 32 32 - read/write/exec libcurses.so.1FF382000 8 8 8 - read/write/exec libcurses.so.1FF390000 8 8 8 - read/exec libdl.so.1FF3A0000 8 8 - 8 read/write/exec [ anon ]FF3B0000 160 160 160 - read/exec ld.so.1FF3E8000 8 8 - 8 read/write/exec ld.so.1FFBEC000 16 16 8 8 read/write [ stack ]-------- ------ ------ ------ ------total Kb 2512 2456 2384 72上面的例子显示了一个bash进程的地址空间占用2512K字节的内存,其中2456K字节驻留在物理内存,2384K字节是与其它进程共享的,此bash进程有72K字节的私有数据。
如果再有一个bash进程被启动,它将共享例子中的bash进程的一些内存结构,在计算进程使用的物理内存数量时,这部分不应该重复计算。
文件系统缓存,不被映射到任何地址空间。
对用户来说这部分内存是不可见的,也是最令人迷惑的。
当你第二次打开一个大文件时,会发现速度比第一次打开同样的文件快很多,这个速度的提高也得益于这部分内存。
当一个进程运行结束时,进程地址空间中的私有部分(如该进程所独有的数据、堆栈等)所占用的页被释放,页被加入到空闲内存中,但这个进程打开文件使用的缓存页却没有被释放,与文件相关的inode 缓存被标记为不活动,被放到可用inode缓存列表的尾部。
当文件被再次打开时,与文件相关的inode缓存和文件使用的缓存页都将被复用,减少磁盘I/O,提高性能。
空闲内存(free memory):没有被用到上面三个地方的物理内存,没有被映射到任何地址空间,当新进程启动或正在运行的进程需要分配内存时,就会从这里获取内存页。
2.2 Solaris的内存管理活动Solaris 8物理内存的管理是基于页的(传统UNIX是基于段的),也就是说,所有物理内存调度是以页为单位的。
在系统级,大多数活动围绕着物理内存页的管理。
物理内存页可以为用户进程通过虚拟内存管理器使用,虚拟内存管理器可以管理除了由内核程序及其相关数据结构使用的物理内存之外的全部物理内存。
有5个数据结构主要关系到物理内存页的管理:页结构池,匿名内存池,自由表(freelist),页hash表,vnode页列表。