[原创]TECH:UNIX虚拟内存、分页和交换的解释_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4539 | 回复: 0   主题: [原创]TECH:UNIX虚拟内存、分页和交换的解释        下一篇 
紫狐狸988
注册用户
等级:上士
经验:261
发帖:29
精华:0
注册:2012-3-5
状态:离线
发送短消息息给紫狐狸988 加好友    发送短消息息给紫狐狸988 发消息
发表于: IP:您无权察看 2012-3-5 10:27:40 | [全部帖] [楼主帖] 楼主

TECH:UNIX虚拟内存、分页和交换的解释

-------------------------------------------------------------------------------------------------

UNIX操作系统上的内存使用情况的了解和测量。

--------------------------------------------------------------------

规划Oracle安装时,计划formemory要求往往是必要的。要做到这一点,是要了解如何在UNIX操作系统分配和管理物理和虚拟系统上的进程memoryamong

------------------------------------

1、虚拟内存和分页

--------------------------------------

现代UNIX操作系统都支持虚拟内存。虚拟内存是1961年左右开发出一种技术,其中允许的aprocess大小超过可用的物理内存量。虚拟内存也允许系统上的所有进程的大小的总和exceedthe机器上可用的物理内存量。一个虚拟内存的全面讨论超出了本文的范围。虚拟内存背后的基本想法是于任何特定的过程,只有一部分是在主存储器(RAM),和磁盘上的存储过程的其余部分。在一个虚拟内存系统中,由程序使用的内存地址不直接引用到物理内存。相反,程序使用虚拟地址,这是由操作系统和内存管理单元(MMU)的物理内存(RAM)地址翻译。这项工程计划,因为大多数程序在任何一个时间只能使用自己的地址空间的一部分。

现代的UNIX系统使用分页的虚拟内存系统。在分页系统,虚拟地址空间被划分称为页intoequal大小的块。一个页面的实际大小是依赖于特定的硬件平台和正在使用的操作系统:

4K8K的页大小是常见的。虚拟页映射到物理页的虚拟地址到物理地址翻译完成。当一个进程引用一个虚拟地址,MMU哪些虚拟页面中包含该地址的数字,然后锁定到虚拟页对应的物理页。两件事情之一是可能的,在这一点:无论是物理页被加载到内存中,或它在磁盘上。如果物理页在RAM中的,进程使用它。如果磁盘上的物理页,MMU产生一个页面故障。操作系统位于磁盘上的翻动书页,在这一点上,找到一个在RAM中的空闲物理页,复制到RAM磁盘的页面,讲述了关于新的映射的MMU,并重新启动的指令产生的页错误。请注意,虚拟到物理页的换算对于进程是看不见。过程中“看到”自己的整个虚拟地址空间:无论何时指向一个地址,查找内存这个地址。所有的虚拟到物理地址换算和所有的页错误处理过程名义由MMU和操作系统执行。这并不意味着一个页故障没有影响。在一个虚拟内存系统,在任何特定时间只有一个进程的虚拟地址空间一部分被映射到RAM。在分页系统,这个概念被正式作为一个进程的工作集。一个进程工作集是简单的,进程是在一个特定的时间点使用页面集。进程的工作集将随时间而改变。这意味着一些页面错误会发生,这是正常的。此外,由于工作集在一直改变,工作集的大小也在一直改变。操作系统分页子系统试图保持在进程的工作组在RAM中的所有网页,从而减少页错误数量并保持高性能。同样的道理,操作系统试图保持工作组在磁盘上的页面,以便让其他进程可用RAM的最大数量。从上面的召回当一个进程产生一个缺页,操作系统必须读取到RAM从磁盘缺席页。这意味着,操作系统必须选择用于此目的的RAM页。在一般情况下,有可能不是空闲的物理RAM页,操作系统必须为新页面读入数据到一个已经使用的物理页面。选择其中使用页面替换新的数据被称为翻动书页替换策略。整本书写的都是关于不同页面置换政策和算法,所以对于他们全面的讨论超出了本文范围。然而,重要的是要注意,有两个页面替换策略普通类:局部和全局。在本地页面置换政策,一个进程被分配一定数量的物理页,页面发生故障时操作系统分配给进程页面内找到一个空闲的页面。在一个全局页面替换政策,当页面发生故障时,操作系统在系统中的所有进程中为进程寻找一个空闲页。这里有一些关键点以了解分页。

1. 通常情况下,只有一个网页数量相对较少的一个单独的进程(通常10-50%)是在其工作集(因此,在物理内存中)在任何一个时间。

2. RAM中页的物理位置与任何进程的虚拟空间的位置没有任何关系。

3. 大多的分页方案允许一个单独的物理页在多个进程中共享。换句话说,如果操作系统可以决定两个(或更多)虚拟页是相同的,只有RAM中的一个单独的物理页对于虚拟页是需要的。

4. 由于工作集大小随时间改变,一个进程需要的物理内存的数量也需要改变。空闲进程需要的内存,如果同一进程开始操纵一个大型数据结构(可能在某些用户输入响应)它RAM需求将飙升。

5. 存在一个正式证明,这是无法确定从静态分析程序工作集大小。您必须运行的程序,以确定其工作集。如果该方案工作组根据其输入(这几乎总是这种情况)两个进程的工作集的过程,如果有不同输入会有所不同。

---------------------------.Unix上的虚拟内存---------------------------以上的虚拟内存和分页的讨论是一个的非常平常的,并在它的所有报表适用于任何的系统虚拟内存和分页的接口。一个传呼和系统内存实现UNIX上的充分讨论是超出范围的。此外,不同的UNIX厂商寻呼子系统实现不同,所以你需要联系您的UNIX 提供关于对您UNIX机器的分页算法的精确信息。不过,也有某些关键功能的UNIX 分页之间的UNIX端口一致。进程运行在一个虚拟地址空间,和UNIX 内核管理所有进程系统的物理内存分页。因为UNIX使用虚拟内存和分页,一般的过程的一部分是在RAM中,而其余进程在磁盘上。1)系统内存映射在UNIX系统上的物理内存被分为三种用途。一些端口的内存是专门用于由经营系统内核使用。剩余内存,有些是专门使用的I / O超级系统(这就是所谓的缓冲区缓存),其余去进入页面池。有些版本的UNIX系统内存的大小,缓存,页面池,在系统启动时,静态分配;而其他版本这三者之间的动态移动内存在运行时,根据系统的负载。(请咨询您的UNIX系统供应商为detailson尤其是您的UNIX版本。)过程中使用的物理内存页池出来。再者,UNIX内核分配一个系统内存的某些数据结构,允许它跟踪那个的过程,每个过程。这种内存通常不超过几页。在开机时,你完全可以忽视这个使用,因为它不来的页面池如果你的系统内存大小是固定的。在运行时动态如果您系统内存的大小调整,你也可以忽视这种用法,因为它是由页面池的要求oracle软件相形见绌。2)全球寻呼策略UNIX系统实施一个全球性的寻呼策略。这意味着,操作系统将在系统上的所有进程时,代表一个进程的物理内存页在搜索。这个有许多优点,一个关键的缺点。一个全球性的寻呼策略的优点是:(1)闲置进程能完全被调出,因此它不举行投到更好地由另一个进程使用的内存页面。(2)全球战略教唆允许系统内存的利用率;每个进程的页面分配需求,更贴近他们的实际工作集大小。(3)管理过程或用户页配额的管理员加载。(4)实现更小,更快。一个全球性的战略的缺点是,可能虐待行为过程影响的所有进程系统的性能,简单地分配和使用大量的页面。3)文本和数据页UNIX进程可以在概念上分为两部分文本添加数据。文本部分包含机器指令进程执行;数据部分包含一切。进程的虚拟地址空间这些两个端口占据不同领域。文本和数据页传呼超级系统管理,是指在任何时间点,只有一些文字网页和只给任何给定的过程中的一些数据页在RAM中。UNIX的对待不同的文字页和数据页。由于文���页面都是通常不是通过一个进程同时修改它执行,页面是文本标记为只读。这意味着该操作系统将会产生一个错误,如果一个进程试图写入一个文本页面。(一些UNIX系统提供的能力,编译一个程序,这确实只读文本:“LD''aout”信息咨询手册页。)文本页面其实读只允许在UNIX的内核来运行两个重要的优化:文本页面之间共享所有进程的运行相同的程序,文本页面分页从文件系统从寻呼区域,而不是。共享文本页面在进程之间减少所需的RAM运行多个实例同一程序。例如,五道工序正在运行OracleForms,如果只有一组页的文字需要所有五个进程.相同的是真实的,如果有五十或五百元进程运行Oracle形式的。从文件系统的寻呼意味着没有的寻呼需要空间任何文字的网页分配,。当一个文本页面在RAM 页面换出它只是过度书面如果它被分页,原始文本页面中文件系统的程序映像。另一方面,必须是数据页读/写,并因此不能(一般)在进程间共享。这意味着每个进程必须有其自己的每一个数据页的副本。此外,因为一个进程的数据页能修改,当一个数据页分页出它必须是写到的磁盘之前,它是在RAM写入。数据页写入磁盘到特别保留的部分。由于历史的原因,这些页面空间被称为交换空间UNIX上。不要让这名字通知你:交换空间用于分页。4)交换空间的使用UNIX的内核是负责管理数据页中的交换空间RAM。交换空间被分为交换页面,这是作为RAM的页面大小相同。例如,如果于任何特定的系统有一个4K页大小,用于交换空间40M,这个交换空间将被划分成10240交换页。的交换页可以在三种状态之一:它可以是免费的,分配或使用。一个自由的页面交换可被视为一个磁盘分页分配。已分配给一个分配页交换是在一个特定的过程中一个特定的虚拟页磁盘页面,但没有数据被写入到磁盘的页面 - 即的通信内存页尚未被调出。一个拿来主义页交换在交换页面包含已分页从RAM.A交换页的数据,直到释放的过程,其中拥有它释放相应的虚拟页。大多数UNIX系统上,交换页分配虚拟内存被分配。如果一个进程请求额外的(虚拟)内存1MUNIX内核发现1M交换空间中的页面,和商标这些页面分配到一个特定的进程。如果在将来的某个时候于任何特定的内存页,必须调出,交换空间是已经被分配。换句话说,每一个虚拟的数据页是的回退交换空间的页面。这一战略的一个重要后果是,如果所有的交换空间被分配的,没有更多的虚拟内存可以分配。换句话说,交换空间系统上的数量限制系统的最高金额虚拟内存。如果没有交换的可用空间,安达的过程,使更多的虚拟内存的要求,那么请求失败。还请求将失败,如果有一些交换可用空间,,但数量是小于所要求的数额。有四个系统调用分配虚拟内存:这些被fork(),exec()的,sbrk(),shmget的()。当一个这些系统调用失败的设置,系统错误代码为EAGAIN。往往是与EAGAIN相关信息的文本没有更多的进程。(这也被用来因为EAGAIN表明已达到限制每个用户或系统进程)如果你运行成在进程失败,因为EAGAIN的错误,一定,到检查可用交换量以及的进程数。如果一个系统运行的交换空间,只有两个的的方式解决问题:你可以终止某些进程(最好是使用大量虚拟内存),或您可以添加交换空间到你的系统。添加交换空间系统在 UNIX变种的方法:请详见操作系统文档或者提供。5)共享内存UNIX系统实施和使用Oracle服务器,共享内存。刘郁文UNIX共享内存实现进程可以创建和附加到分享内存段。共享内存段连接到一个进程在一个特定的虚拟地址。一旦共享的内存段是附加到一个进程,在该地址的内存可以读取从和写到就像任何其他内存在进程的地址不像正常的虚拟内存,写在分享内存段地址的变更,都可见重视到段的每一个过程。共享内存页的数据,就像传统的记忆。其他事实,即多个进程使用相同数据页,分页子系统不治疗比常规内存共享内存页任何不同。交换空间被保留在分配的时间论坛共享内存段,页主题在RAM内存是被调出,如果他们不使用,就像常规的数据页。之间定期的数据页和共享数据页面治疗唯一的区别是,分享页面只有一次分配,没有多少进程正在使用共享内存段。6)一个进程的内存使用当讨论一个进程的内存使用情况,有真正两种类型内存使用情况来考虑:虚拟内存使用率和内存使用物理,。进程的虚拟内存使用的是分配给进程的虚拟页面的总和,再加上对分配页面到进程的虚拟数据的总和。每一个非共享的虚拟数据页通信为它分配的交换空间的页面。有全无系统虚拟文本页面的数量上的限制,人数虚拟数据系统的页面交换空间的大小的限制。比每个进程的基础上系统广泛基本的的共享内存段分配,但分配交换页是交换设备在完全同样的方式作为非共享数据的分页。一个进程的物理内存使用率是这一进程的物理页面的总和,加上物理数据页的进程的总和。物理文本页面之间共享所有进程运行相同的可执行映像,为共享内存物理数据页之间的间连接到同一分享段的所有进程共享。因为UNIX上实现了虚拟内存,的进程物理内存使用将低于虚拟内存使用。由一个进程使用的物理内存的实际金额取决于操作系统的分页子系统行为。不同的是一个过程,这将是每次都相同于任何特定程序与特定输入运行虚拟内存使用,一个过程的物理的内存使用取决于其他一些因素。第一:因为工作集的过程中随着时间的推移变化,这个过程所需要的物理内存的多数将改变过去时间:如果进程正在等待用户输入,金额物理的内存,它需要将急剧下降。(这是一个工作集改变大小特殊情况)第三:实际分配到一个过程量物理内存取决于整体系统加载上。如果一个进程正���运行重仓系统,然后全局页分配政策往往会分配给该进程是非常密切的工作集大小国税发物理内存页。如果在同一程序具有相同的输入上加载系统的运行,物理内存页的数目分配到过程中往往会要远远超过工作集的大小,操作系统无需回收物理页从这过程,并不会这么做。这种净效应是,任何物理内存的措施使用需求是不准确的,除非你是模拟输入和系统最终你将要测试的系统负载。例如,一个Oracle Forms的过程的物理的内存使用量将是非常不同如果的用户正在迅速移动之间的3个大窗户,流畅移动之间相同的三个窗口,迅速成s单一窗口输入,慢慢输入到同一窗口,或者如果他们正在阅读屏幕和过程数据关闭闲置 - 即使过程虚拟l内存使用将保持不变。一个Oracle形式过程中的物理内存使用率通过的同样被用,将不同,如果它是唯一的一个系统上的活动进程,或者如果它是在同一系统上的50 积极Oracle Forms的进程。7)要点有了解的UNIX 虚拟内存实现的一些关键点。(1)每一个过程中的每个数据页的备份页中的交换空间。这种交换空间的大小限制系统上的虚拟数据空间量;进程是不能够分配内存如果没有足够的交换空间可以将它备份起来,无论多少物理内存是系统上可用。(2UNIX实现了全球寻呼策略。这意味着,分配给进程的物理内存大多数良莠不齐加班,对进程的工作集和超出系统负载的大小而定。空闲进程可能会被调出,完全繁忙系统。在轻负载的系统进程可能会比他们需要为自己的工作集分配更多更多的物理内存。(3)系统上可用的虚拟内存量是被该系统配置的交换空间量所决定。系统在最大负荷byall进程分配的虚拟数据的总和是相等的金额交换所需的空间。(4)物理内存页面池的进程,这是不分配给操作系统内核缓冲区高速缓存的内存分配。在物理内存量为页面池需要的是在工作的物理页的总和等于系统设置在最大负载时ofall进程。----------------------------------第三。 UNIX进程的内存布局----------------------------------1)一个进程的分部上面的讨论中说,作为被分为了分成两地区的UNIX进程:文本和数据。这个师是准确地讨论寻呼子系统,因为寻呼子系统视为一个数据页在每个文本页面。事实上,UNIX进程分为可分6分部:文本,堆栈,堆,BSS的,初始化的数据,分享内存。这些部分都包含了不同类型的信息用于不同的目的。文本段是用来存储机器指令the进程执行。弥补了文本段的页面是标志只和之间进程正在运行同样执行的形象共享。从文本段页分页从文件系统执行形象。在该程序被调用时被适应文本段的大小,它不会成长或者程序执行期间。堆栈段用于存储运行时执行堆栈。运行时间程序堆栈包含的功能和的过程激活在记录,功能和过程参数,和为本地变量的数据。堆栈段的网页,使标记 /写的过程是私人。分页到交换设备从��栈段页。最初的栈段的大小通常是一个页面,如果过程中引用地址超过堆栈,操作系统将交换分配另一页堆栈段。BSS段是用来存储静态拨给没有初始化的数据。 BSS段的网页,使读/写标记,是私人的过程,并初始化所有位为零的时间仅有一名程序调用。从BSS段的页面页面到交换设备。 BSS段的大小是固定的次数程序被调用:它不成长或缩小在程序执行。初始化的数据段是用来存储静态分配初始化的数据。使初始化数据段是标记为读/写,该网页是私有的过程。从初始化数据段的页面首先读取从文件系统中的初始化数据,如果他们已被修改,然后分页进入交换设备上。初始化数据段的大小是固定的程序被调用时,它不会在程序执行过程中生长和收缩。动态分配的数据段(或)包含数据页面已分配的过程,因为它的运行,使用BRK()or sbrk的()系统调用。堆的网页,使被标记 /写,是私人的过程,并在页被分配给进程的时间初始化到所有l

位零。页面f从堆被分页到交换设备。在程序启动有大小为零:它可以任意大的期间程序执行增长。大多数进程没有共享数据段。在那些共享的数据段包含已连接到过程中使用的shmat()系统调用的数据页。共享内存段被创建使用shmget的()系统调用。读/写数据段分享的网页,使被标记,之间共享内存段连接到all进程es共享,并在的时间段的分配使用shmget的()初始化toall位零共享数据。段成的交换设备分享内存段上系统过程动态分配共享内存段的大小是固定在的时间isallocated,但进程可以分配任意大的共享memorys分页。2)每个进程的内存映射六个分部,包括一个过程,可以放置在内存任意方式。内存布局的具体细节取决于CPU和,特别UNIX实现设计在架构。通常情况下,UNIX进程使用的处理器的整个虚拟地址空间。这个地址空间内,某个地址是合法的,并用于特定分部。地址任何部分是非法的,任何试图读取或写入他们友善,会产生一个分割冲突的信号。下图显示了一个典型的UNIX每进程虚拟内存映射的32位处理器。请注意,此内存映射覆盖机器整个虚拟l地址空间。在此图中,地区个'T'是文本段,“S”表示堆栈段,“S'共享内存���,堆'H''D'初始化数据,'b”BSS 。空格表示非法地址。+ -------- + ----- + -------- + -------- + -------------------- - ------- + - + - + tttttttt SSSSS SSSS hhhhhhh DDDD BBBB tttttttt SSSSS - >> SSSS tttttttt SSSSS SSSS hhhhhhh DDDD BBBB + -------- + ----- + -------- + -------- + --------- ------------ + ------- + - + - +0 2G文本段在这个特别的实施,占据了最低虚拟的地址,在BSS中占据了最高。请注意,在这样一种方式内存存放允许堆栈段和增长。堆栈的增长向上,向着更高的虚拟地址,,当堆增长向下,向更低的虚拟地址。还注意到,共享内存段安置是关键:若在过低地址被附加的,它会防止堆栈生长,如果它连接地址太高将会阻止增长堆。3)过程的大小限制所有的UNIX系统提供,一些限制虚拟a进程的大小的方法。请注意,这些限制只在虚拟内存使用的是:有没有办法限制进程a进程或组所使用的物理内存量。与SVR3基础的系统上,有一个全系统对数据段虚拟大小的限制。更改此限制需求你要更改UNIX内核配置参数和重新链接内核:有关详细信息,请检查您的作业系统文件。BSDSVR4为基础的系统上,有一个默认的限制大小的堆栈段和数据段。这是可能的改变这些限制每一个进程的基础上;手册页ongetrlimit()和setrlimit()有关详细信息,咨询。如果你使用的是C-shellas'限制'命令登录shell提供了一个命令接口这些系统调用。改变全系统默认的需要你改变UNIX内核配置参数的,并重新链接内核:检查经营系统文档详情。大多数系统还提供了一种方法来控制最大大小和数目的共享内存段:这通常涉及到改变UNIXkernel参数SHMMAX时,SHMSEGSHMMNI的。再次,咨询详情你的操作系统文档。4)高水位,马克的影响回想一下,从上面的数据段的大小只能使用BRK()和sbrk()系统调用改变。这些系统调用允许你增加或减少的数据段.然而的大小,大多数方案,包括Oracle程序,不使用BRK()直接orsbrk()。相反,他们使用一对图书馆函数提供由操作系统供应商,所谓的malloc()和free()。这两个函数一起使用来管理动态内存分配的。这两项职能由使用过程中保持可用内存池(叫主场)。他们通过维护一个数据结构的描述部分堆使用和撰稿提供。当进程调用malloc(),从舞台上获得一大块内存国税发要求大小和返回thecalling功能。当进程调用free()的,先分配块的舞台,使得它可以同使用以后调用malloc()的返回。如果一个进程调用malloc()的要求是目前在竞技场比thelargest空闲块大,用malloc()将调用sbrk()扩大堆的舞台的大小。然而,自由最多提供商的实现()不会萎缩的返回内存的大小,操作系统通过sbrk()。相反,他们简单放置免费的()D内存在主场以备后用。这次实施的结果是使用malloc()库的过程,表现出高水标记效应:虚拟sizesof的进程成长,但不缩水。一旦一个进程从作业系统使用malloc(),内存需求保持过程的一部分,直到终止分配虚拟内存。幸运的是,这个影响只适用于虚拟内存;内存返回到非常分页和未分页中,直到它被重新分配通过malloc()的舞台。-------------------------四。监控内存使用-------------------------归根到底,只有两件事是有关当大小UNIX系统内存:你有足够的RAM,有足够的交换空间?为了回答这些问题,它必要的知道多少虚拟内存和多少系统上的物理每个内存过程使用。不幸的是,标准UNIX进程监测工具不提供可靠决定这些数字的方式。检查一个UNIX系统的内存使用的标准工具是'大小''IPCS''PS''vmstat''PSTAT“。大多数SYSV派生的系统也将有撞车实用:大多数BSD派生的系统将允许您运行'dbx的对UNIX内核的。大小实用��程通过执行的静态程序分析。它打印出的文本虚拟内存的大小,BSS的和初始化d数据段。它并不试图确定的sizeof的栈和堆,因为这些大小都可以改变程序输入巨大依靠。由于联合的the栈和堆大小通常是较大的数百倍以上的BSS 组合的大小和初始化的数据,这种方法是最可靠的方法一个程序确定运行虚拟内存的要求。它也是在ICGto用来确定Oracle程序的内存需求的方法。信息有用地方你可以从'大小'是虚拟大小国税发文本段。由于文本段是从文件系统分页,知道虚拟大小的文本段将不会帮助您大小交换空间或RAM'IPCS“实用程序将打印出的所有系统共享的内存段的虚拟内存大小。使用“MB”标志,,有下SEGSZ列的段的大小。'PS'程序将打印出有关过程当前激活系统上的任何的信息。在一些SysV为基础的系统,使用“l'将事业”PS“打印出的SZ领域,其中包含进程的非文本在页面计量段,虚拟大小的”PS“。使用'-U'标志的'PS'OnBSD为基础的系统,也将导致要打印的SZfield。虽然这个数字是一个进程正在使用的虚拟内存的准确测量,它是不准确的,,如果the进程重视共享内存段。这意味着,当测内存,你必须通过所有的Oracle后台和影过程中使用的虚拟内存减去SGA的��小(获得via'ipcs上面)。在基于SVR4和基于BSD的系统,使用BS风格的“PS”使用命令,'-U'标志也将导致要打印的RSS领域。这个地方包含的进程.不幸的的物理内存使用率,这个值是合并过程中送给所有阶层的物理内存使用情况,并不区分页面私有的进程和进程间共享的网页。由于文档和共享数据页在进程间共享,这意味着系统超出r估计添加所有进程的RSS大小的被用于系统.这的物理内存量也意味着,如果你把所有的RSS领域你的进程eson系统很可能拿出一个数字大于您的系统上的RAM 多数t!虽然RSS领域是一个很好的预测多少RAM时,需要有一个进程运行程序形象,它不会告诉你多少额外的RAM 当需求时第二个进程运行相同的图像。也可用于“PSTAT”实用打印每个进程的信息。 IFIT有深圳或RSS领域,适用于相同的限制“ps'output也适用于”PSTAT“输出。在某些版本的UNIX,(-s''T“通常一个标志)pstat'invoked”会给你信息关于交换空间的使用。要小心!一些UNIX版本将只说出多少交换空间,用于信息,并不是已分配多少。你可以在这些机器上运行之外交换,PSTAT“仍��会告诉你,你有充足的交换可用。'vmstat'工具是用来打印出全系统信息在寻呼子系统性能。其主要的限制是26.5不打印出每个进程的信息。 “vmstat'输出格式变化之间的UNIX端口:看的重点领域是衡量的一些页面和页??面事件每秒几个。记住,一些寻呼活动是正常的,所以你会不得不自己决定什么网页或每第二种方式页指出您的页面池太小的数目。实用的特区SysV为基础的系统,用于各种性能的内核超级系统打印系统之外全的信息。像'vmstat,其主要限制是它指出出每个进程的信息。 '-R''-G''-P'选择是最有用的研究传呼子系统的行为。撞车实用的SYSV的系统,让你直接检查操作系统的内核数据结构的内容。基于OnBSD的系统,它通常是可能到使用内核调试检查的,这些相同的数据结构。这些数据结构是总是分享特定于操作系统的,所以你将不仅需要一个普通UNIX的内部知识,但你也将需要该特定系统的知识国税发内部。不过,如果你有这个信息(和耐心),它是可能的崩溃给罪人你对虚拟和物理内存使用率奥纳每个进程基础的准确信息。最后,还有各种公共领域和特定供应商的工具监测内存使用。记住:你正在寻找一个元件让你衡量一个进程的物理内存使用率,和提供你的网页数量的文档段使用,共享内存���,,其余进程咨询您的操作系统单独值供应商的详细信息。----------------------------至五。交换空间和RAM的大小----------------------------底线是,虽然估计在UNIX机器上虚拟和物理内存使用,这样做很可能是一个艺术而不是一门科学。第一:你必须衡量你的实际应用。运行一个Oracle Forms应用点阵模式,使用256色,16全,windows屏幕,成千上万的记录检索单个查询可能好的使用幅度更堆和栈的两个订单比OracleForms在字符模式下运行的应用程序,使用一个窗口和在任何单个查询的几十行。同样,只用五百年的用户登录到数据库,在任何时间执行查询,他们但只是第五十制度将有一个比一个服务器系统唯一具有只二百用户登录到数据库中,所有这些都继续运行的超低RAM要求查询和更新。第二:测量时物理内存使用情况,确保,你的系统作为重仓,因为这将是在生产环境下.它没有好处的Oracle255 进程运行的形式来衡量的物理内存使用情况,如果所有255个进程正坐在空闲等待输入 - 调出的所有进程都在等待输入。交换空间的大小是相对比较容易。记得每一页虚拟数据必须支持的交换页。这意味着,筹备出去估计你的机器上的最大虚拟内存的使用,挥霍确定多少你需要的交换空间。深圳列其外'ps'的命令,以确定的系统运行这些进程的虚拟内存的使用。高水位,可以是你的测量��需要一个过程,作为硬,你可以运行,知道有多高,可以推动深圳的价值增加列一起备考基准由系统进程使用的虚拟内存,然后计算被每一个渐进的过程(不要忘记计算所有进程可以创建一个用户登录时,如壳和任何牺牲影子进程)的虚拟内存的最高金额。交换空间的要求仅仅是在最大负载时的所有进程theSZ列的总和。交换空间的大小为超载紧急情况照顾系统管理员将增加10%。浆纱RAM是较为困难。首先,从确定系统空间(这通常是在信息印在启动过程中)的专用RAM 。请注意,调整操作系统内核回增加系统空间所需的RAM数量。接下来,确定缓冲区高速缓存所需的内存量。最后,确定页面池所需的RAM数量。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论