【AIX】AIX内存机制面试
虚拟内存是物理内存和交换空间(Paging Space)组合造成的虚拟内存空间, 经过虚拟的地址空间映射到物理内存或者 Paging Space。算法
在 AIX 中,虚拟内存段被分红 4096 字节大小的页,物理内存则被划分为 4096 字节大小的页帧(page frame)shell
1.1 物理内存数据库
实际存在的物理内存条上的可供系统使用的缓存。缓存
物理内存大小的查看:安全
1) # prtconf | grep memory 微信
2) # vmstat 网络
3) # lsattr –El sys0 –a realmem 多线程
A. 永久段(Persistent segment)和工做段(Working segment) 框架
AIX 区分不一样的存储段类型。理解不一样的存储段类型,特别是工做段和永久段的区别很是重要。
永久段在磁盘上有一个永久的存储位置。含有不可编辑数据的文件或者只读的运行程序被映射到持久段,例如包含数据的文件,可执行文件。VMM 参数控制何时分配给永久段的 RAM 页帧能够被重写,而且用于存储新的数据。
工做段是临时性的,仅在它们被某个进程使用的时候存在,而且没有固定的磁盘位置。进程堆栈以及数据区,共享库文本,内核数据被映射到工做段。当工做段数据也不能存在于“实”存中的时候,他们被保存在磁盘上的页交换空间。
程序退出执行,全部工做段占用的页面被返回。
B. Computational(计算型)和 File(文件型)
Computational 型内存包含 working-storage segments or program text (executable files) segments。也就是包括 work(工做段)再加上 persistent(永久段)中的可执行文件的部分。 File(文件型)是除去计算型的全部内存. Computational 型能够理解为读入可执行文件的地方,文件型能够理解为读入文件中的 data 部分。
# topas
C. Client 类型
Persistent 段的内存进一步被分类,其中 client 类型的内存被用于 map remote
files(例如经过 NFS 访问的文件).。Enhanced JFS file system(JFS2)使用 clients page 来缓存 cache。
The number of pages paged in from paging space, and The number (rate) of pages paged out to paging space.
注:若是持续看到 po 可是没有看到 pi 的增加,并不必定表明出现了 Thrashing, 好比系统正在读取大量的 persistent pages 会致使看到大量的 page out, 这时候须要查看一下应用的类型。被 page out 出去的数据,若是有进程须要再次 reference 的时候,将产生 page fault,而后经过 page in 再次写入到内存。
1.5 Thrashing(颠簸)表示系统连续地 paging in 和 out, 常常是系统缺少内存的现象。
Page fault 能够是一个新的 page fault,也能够是一个 repage fault。出现 new page fault 是指第一次调用, 近没有相关的记录。出现 repage fault 是指当刚刚调用过可是已经被替换出去了(极可能写回磁盘了),再次调用。发生一次 page fault 是正常的,但应该避免发生屡次的 page fault,AIX 在这里是作了一种统计,
分别统计计算型和非计算型内存发生 repage 的数量,咱们能够用 vmo 去调整这两种内存的 page 的机制。
在 AIX 4.3.2 及之后版本中,操做系统提供了 3 种 Paging Space 的管理机制。
分别为:
Early Page Space Allocation (EPSA)
Late Page Space Allocation (LPSA)
Deferred Page Space Allocation (DPSA)
在 AIX 系统中,当 Paging Space 的使用率达到必定百分比时,系统就没法
将须要 page out 的页面写到 Paging Space 中,这时候,该进程就极可能被杀掉。为了不这种状况的发生,EPSA 机制会保证当进程被启动时,在 Paging Space 中先申请一块页面空间,该空间大小与该进程所须要占用的实际内存的大小一致(将环境变量 PSALLOC 设为 early,也就是“export PSALLOC=early”)。这样就保证当进程使用 malloc()调用的同时,在 Paging Space 中有相应的空间保留给该进程,从而保证该进程的 page out 操做。这种机制虽然能够保证现有的进程安全,但因为不少被保留的页面空间并无被用到,形成了很是大的空间浪费。同时,也须要 Paging Space 的大小比实际内存值要大不少。
在 AIX 4.2.1 以后, 4.3.2 以前,操做系统默认使用 LPSA 机制。这种机制是指当进程启动后,系统并不在 Paging Space 中为该进程保留相应的页面。只有当该进程的实际内存页面被修改事后,才会在 Paging Space 中为这些被修改过的页面申请空间。这种机制在必定程度上减小了 Paging Space 的空间浪费,可是对系统也存在必定的风险。好比,当一些后起的进程用了几乎所有的 Paging Space 后,因为先起的进程并无保留足够的 Paging Space 空间用于进程的 page out 操做,会致使该进程被杀掉。
在 AIX4.3.2 以后,DPSA 是系统默认的 Paging Space 的管理机制。在这种机
制下,系统不会为进程保留任何的 page 页面,直到系统确认确实须要将内存中
的页面 page out 到 Paging Space 中,才会把 Paging Space 的页面分配给该进程。这种机制不会形成 Paging Space 的空间浪费,但和 LPSA 同样,这种机制也给系统带来了相同的风险。
DPSA 是 AIX 432 及之后版本中所使用的默认机制,它一般适用于配有很大容量 RAM 的系统,由于它能够减小不少 Paging Space 资源的浪费。对于 RAM 容量不是很大(好比小于 2GB)的系统,用户能够采用 LPSA 或 EPSA 机制。用
“/usr/samples/kernel/vmtune -d 0” 命令能够中止使用 DPSA,而使用 LPSA。用 “/usr/samples/kernel/vmtune -d 0” 命令加上“export PSALLOC=early”命令能够中止使用 DPSA,而使用 EPSA。用 “/usr/samples/kernel/vmtune -d 1” 命令能够激活 DPSA。
在 AIX 操做系统中,当内存中的页面被 page 到了 Paging Space 中之后,那么这一块 Paging Space 的页面空间将被保留给该内存页面,即便该页面已经被写回到内存中。所以,用 lsps 命令看到的 Paging Space 的使用率可能并不能真实反映真正位于 Paging Space 中的页面数,由于有些页面可能已经写回到了内存中。若是写回到内存中的页面是线程的工做存储页面(Working Storage),那么随着该线程的退出或者是相关的内存被释放 -- free(),Paging Space 中的相应页面块也才会被释放。
注:defps=1 表示采用的是 DPSA,若是 defps=0 表示采用的是 LPSA。
? 修改 paging space 的机制,采用 LPSA
# vmo -o defps=0
? 查看 defps 属性
当前值是 1,缺省值是 1,启动时的值是 1, 取值范围是 0-1,类型是动态能够修改的
若是 paging space 少到必定的空间,操做系统将会经过先告警进程释放 paging space,后可能会 kill 进程.相关的两个参数 npswarn 和 npskill
# vmo -a |grep npswarn npswarn = 4096
默认值:max(512,4×npskill)
# vmo -h npswarn
Help for tunable npswarn:
Specifies the number of free paging-space pages at which the operating system begins sending the SIGDANGER signal to processes. Default: MAX (512,4*npskill). The value of npswarn must be greater than zero and less than the total number of paging space pages on the system. Increase the value if you experience processes being killed because of low paging space. # vmo -a |grep npskill npskill = 1024 默认值:max (64, paging space 总页数 /128)
# vmo -h npskill
Help for tunable npskill:
Specifies the number of free paging-space pages at which the operating system begins killing processes. Default: MAX (64, number_of_paging_space_pages/128). The npskill value must be greater than zero and less than the total number of paging space pages on the system.
AIX 5.3 以后能够利用 paging space garbage collection 机制来 free up paging space。只做用于 deferred page space allocation policy。
? 方法一:re-pagein 后的垃圾收集
一个页面从交换空间调回到内存以后,释放磁盘数据块。
相关参数:
npsrpgmin:中止 re-pagein 垃圾收集的 free paging space blocks 数目 npsrpgmax:开始 re-pagein 垃圾收集的 free paging space blocks 数目
? 方法二:scrubbing memory
另外一种方法是,psgc 内核进程实现清理内存。psgc 内核进程释放那些已修
改且不会再调出内存页或者没有修改过在交换空间的数据块。相关的参数:
npsscrubmin:中止 scrubbing 内存的 free paging space blocks 数目 npsscrubmax:开始 scrubbing 内存的 free paging space blocks 数目
# vmo -a |grep nps npskill = 62464 npsrpgmax = 499712 npsrpgmin = 374784 npsscrubmax = 499712 npsscrubmin = 374784 npswarn = 249856
AIX中Paging Space大小肯定的指导原则以下(理论上):
? 系统实际内存小于64MB, paging space= 2 * RAM ;
? 系统实际内存在 64MB to 256MB 之间, Page Space = RAM size + 16MB ;
? 系统实际内存大于 256MB , Page Space = 512 + ( RAM - 256 ) * 1.25 ;
? 当内存超过4GB时,则须要根据实际状况来定,通常可初始3GB, 而后观察paging space的使用状况,若是使用率超过70%, 则须要增长paging space 。
此外在建立Paging Space时还应遵循如下原则以提升性能:
? 建立的数量应尽量的多;
? 每一个Paging Space的大小应该相同;
? 每一个Paging Space应尽量的分配在不一样的硬盘上。
工程和维护建议(目前内存和硬盘都比较大,相对比较实用些):
若是硬盘空间不是问题的话,建议能够是内存的两倍。若是内存大于8G或者16G,能够考虑先和内存空间相同。同时用两块不一样的内置盘各分配一半的paging space空间。 对于作了根盘镜像的系统,建议能够不做镜像paging space(维护时注意这些特色)。 大的swap 空间能够避免DPSA可能产生的风险,对运维来讲,可能能够减小相关的维护分析工做。
AIX? 虚拟内存管理器 (AIX VMM) 是一种基于分页的虚拟内存管理器。一个分页就是一个固定大小的数据块。分页既能够位于内存中(也就是说,映射到物理内存中的某个位置)、也能够位于磁盘中(也就是说,从物理内存中替换到分页空间或者文件系统)。
AIX VMM 有一个很是独特的方面,即缓存的文件数据的管理。AIX VMM 将缓存的文件数据与对其它类型虚拟内存(例如,进程数据、进程堆栈等等)的管理集成到了一块儿。它将文件数据缓存为分页,就如同进程的虚拟内存同样。
AIX 根据须要将分页映射到实际内存。若是应用程序引用了某个分页,而
该分页并无映射到实际内存中,那么系统将产生一个缺页。为了解决缺页, AIX 内核会将所引用的分页加载到实际内存中的某个位置。若是所引用的分页是一个新的分页(也就是说,位于先前从未引用过的进程数据堆中的分页),那么“加载”所引用的分页只须要用零来填充一个实际内存位置(也就是说,提供一个填满零的分页)。若是所引用的分页是一个预先存在的分页(也就是说,文件中的某个分页、或者先前换出的某个分页),那么加载所引用的分页须要从磁盘
(分页空间或者磁盘文件系统)中将该分页读入到实际内存中的某个位置。
在将分页加载到实际内存中以后,它将被标记为未经修改的。若是某个进程或者内核修改了该分页,那么该分页的状态将更改成已修改的。这容许 AIX 跟踪在将某个分页加载到内存以后是否对其进行过修改。
随着系统将更多的分页添加到实际内存中,实际内存中空闲位置(能够包含分页)的数目将会减小。也能够将空闲位置的数目称为空闲分页框架的数目。当空闲分页框架的数目达到某个较低的值时,AIX 内核就必须清空实际内存中的某些位置,以便重用新的分页。这个过程也称为分页替换。
AIX VMM 提供了一些后台守护进程,专门负责进行分页替换。其中一个分页替换守护进程称为 lrud(显示为 ps -k 的输出中的 lrud)。lrud 守护进程负责在内存分页中进行扫描,并回收某些分页以便为实际内存腾出空间。当分页替换守护进程肯定它但愿回收某个特定的分页时,这个分页替换守护进程将执行下面两项操做中的一项:
? 若是该分页通过了修改,那么分页替换守护进程将该分页写入到辅助存储位置(例如,分页空间或者文件系统磁盘)。将包含该分页的物理内存块标记为空闲,并为其它的分页作好重用的准备。
? 若是该分页没有通过修改,那么分页替换守护进程能够简单地将物理内存块标记为空闲,这样一来,就能够将该物理内存块重用于另外一个分页。在这种状况下,分页替换守护进程不须要将该分页写入到磁盘,由于该分页在内存中的版本并无通过修改,所以与位于磁盘中(在分页空间中、或者在磁盘文件系统中)的分页副本彻底相同。 分页替换守护进程能够根据系统内存的使用状况和可调参数,选择不一样类型的分页进行回收。
简单地说:
VMM 服务于来自系统以及应用程序的内存请求。虚拟地址空间划分红段。每段的大小是 256 MB,它是虚拟内存地址空间中一个邻接的部分,数据对象可映射到该空间。虚拟内存段以页为单位进行分区,每一个页面大小为 4096 字节,能够存在于物理内存中或者存在于磁盘上的页交换空间。AIX 经过使用虚拟内存能够寻址比系统中物理内存更大的存储空间。
虚拟地址空间划分红段。每段的大小是 256 MB,它是虚拟内存地址空间中一个邻接的部分,数据对象可映射到该空间。虚拟内存段划分红固定大小的单元叫作页。缺省页面大小是 4096 字节。段中的每页在须要以前可位于实际内存(RAM)中,或存储在磁盘上。一样,实际内存也能够划分红 4096 字节的页帧 page frame。
? 小化使用虚拟内存的总处理器时间和磁盘带宽代价
? 小化发生 page fault 的响应时间代价
VMM 使用了一个页面替换算法来肯定当前处于内存中的哪些虚拟内存页要将它们的 page frames 从新指定到空闲列表中。页面替换算法使用了几个机制:
? 虚拟内存段分红 persistent 持久段或 work 工做段。
? 虚拟内存段分红包含计算 computational 内存或文件 file 内存。
? 引发 page fault 的虚拟内存页。
? page fault 分红 new page fault 或 repage faults。
? 在每一个虚拟内存段中维护一个 repage faults 率的统计信息。
? 用户可调阈值影响页面替换算法的结果。
VMM 主要有如下两个主要功能:
(1) 管理页帧的分配
(2) 解析对当前没有调入 RAM 中的虚拟内存页的引用
为了完成上述功能,VMM 维护一个可用帧列表,而且使用一个页面替换算法决定哪些当前在 RAM 中的虚拟内存页使用的页帧将被分配到能够可用帧列
表。页面替换算法将考虑永久段(Persistent segment)和工做段(Working segment)的分配、页交换和 VMM 阈值等因素。在绝大多数环境中,偶尔时候 VMM 必须经过 reasign 由运行进程占有的一些页面帧来添加到空闲列表中。须要 reasign 页面帧的虚拟内存页由 VMM 的页面替换算法进行选择。VMM 阈值决定了从新指定的帧的数量。
查看空闲列表:
当空闲列表中可用的实际内存帧数量减小时就会调用一个页面替换器(stealer)。页面替换器在整个页面帧表(PFT)中移动,寻找可替换(steal)的页面。
PFT 中包含一些标志用来表示哪些页已经被引用,哪些页已经被修改。若是页面替换器遇到一个已经引用的页,它不会替换这个页而是为该页从新设置引用标志。在下一个时钟(页面替换器)通过该页且引用位仍未启用时,它便被替换。初次经过时未被引用的页面会当即获得替换。修改标志表示该页进入内存后上面的数据已经改变。当页面要被替换时,若是设置了修改标志,那么在替换该页以前进行页面调出调用。属于工做段的页面写入调页空间;而持久段中的页面写到磁盘上。
如图所示:
上图中: 第一个表是具备四列的页面帧表,它包含实际地址、段类型、引用标志和修改标志。第二个表叫作空闲列表,它包含全部空闲页的地址。后一个表表明除去全部空闲地址后 终获得的页面帧表。
除了页面替换之外,算法还可经过使用一个包含 近缺页故障标识的历史缓冲区来跟踪新页故障(第一次引用)和从新调页故障(引用已经调出的页)。而后它能够尽可能平衡文件(持久数据)页面的调出和计算(工做存储器或程序文本)页面的调出。
当进程退出时,它的工做存储器马上释放而且它的关联内存帧也放回到空闲列表中。然而由该进程打开的任何文件可保留在内存中。
若是线程在单处理器上运行,那么页面替换可直接在线程做用域中进行。在多处理器系统中,页面替换经过内核进程 lrud 进行,在达到阈值 minfree 时,该进程被分派到 CPU 中。从 AIX 4.3.3 开始,内核进程 lrud 是多线程的,每一个存储池中一个线程。根据 CPU 数量和 RAM 大小将实际内存划分红平均大小的存储池。系统中存储池的数量可经过运行命令 vmo -a 来肯定。
Page faults:
a)new page fault b)repage fault
若是没有 近引用页面的记录的话,会出现一个 new page fault。而出现 repage faults 是指一个知道其 近已经引用的页再次被引用,但因为该页在上次访问后已经被替换(可能写到磁盘上)而在内存中找不到它。
理想的页面替换策略经过老是替换那些不会再次引用的页面帧而彻底减小 repage faults(假设有足够的实际内存)。于是 repage faults 数是页面替换算法有效性的一个相反评测标准,算法将频繁被重用的页面保存在内存中,从而下降了整体 I/O 需求并潜在地改善了系统性能。
1) minfree
空闲列表中可接受的实际内存页面帧的小数量。当空闲列表的大小低于这个数时,VMM 开始替换页面。它将一直替换页面直到空闲列表的大小达到 maxfree。
2) maxfree
当 free list 的大小超过 maxfree 的时候,VMM 的 page stealing 将中止。当进程终止并释放它们的工做段页面或删除其页面在内存中的文件时,结果是空闲列表的大小可能会超过这个数。
注:从AIX 5.3开始, minfree参数的缺省值增长到每一个内存缓冲池960 ,maxfree 参数的缺省值增长到每一个内存缓冲池1088 。
minfree = max(960,逻辑 cpu 数 * 120)/(memory pools 数量)
maxfree = minfree + (逻辑 cpu 数* maximum read ahead) /(memory pools 数量)
Where,
minperm 和 maxperm 是两个 基本的分页替换可调参数。这两个可调参数用于指出 AIX 内核应该使用多少内存来缓存非计算性的分页。maxperm 可调参数指出应该用于缓存非计算性分页的 大内存量。
在缺省状况下,maxperm 是一个“非严格的”限制,这意味着在某些状况下能够超出这个限制。将 maxperm 设定为非严格的限制,这容许在具备可用空闲
内存的时候,能够在内存中缓存更多的非计算性文件。经过将 strict_maxperm 可调参数设置为 1,就可使 maxperm 限制成为“严格”的限制。当 maxperm 是
严格限制的时候,即便有可供使用的空闲内存,内核也不容许非计算性分页的数
目超出 maxperm 的限制。所以,将 maxperm 做为严格限制的缺点是,非计算性分页的数目不能超出 maxperm 的限制,而且在系统中具备空闲内存的时候,也不能使用更多的内存。minperm 限制指出应该用于非计算性分页的 低内存量。
非计算性分页的数目称为 numperm:vmstat –v 命令能够显示系统的 numperm 值所占系统实际内存的百分比。
下面的给出了有关这些可调参数在不一样的系统条件下如何进行工做的概况:
当非计算性分页的数目 numperm≥ maxperm 的时候,AIX 分页替换守护进程严格地选择非计算性分页(例如,缓存的非可执行文件)进行操做。
当非计算性分页的数目 numperm≤ minperm 的时候,AIX 分页替换守护进程将选择计算性分页和非计算性分页进行操做。在这种状况下,AIX 将扫描两类分页,而且回收近来较少使用的分页。
当 numperm 在 minperm 和 maxperm 之间的时候,若是 lru_file_repage 可调参数设置为 1,那么 AIX 分页替换守护进程将根据其内部从新分页表来肯定选择何种类型的分页进行操做。
AIX 内核维护了一个从新分页表,以便肯定哪些分页在换出后将很快地换入。当内核将一个分页换出、而后再将其换入的时候,一般表示这个分页常常会被使用,而且该分页应该保留在内存中。内核记录了对计算性分页从新分页的次数,以及对非计算性分页从新分页的次数。而后,AIX 内核可使用这个信息来肯定哪一类分页的从新分页工做更加频繁(于是,表示这一类分页正在频繁地使用)。当 lru_file_repage 可调参数设置为 1 时,AIX 内核使用这个从新分页信息来肯定是否仅选择非计算性的分页进行操做、或者选择计算性的和非计算性的分页进行操做。若是计算性分页的从新分页速度比非计算性分页的从新分页速度高,那么 AIX 内核将仅选择非计算性的分页进行操做(由于计算性分页的使用更为频繁)。若是非计算性分页的从新分页速度比计算性分页的从新分页速度高,那么 AIX 内核将选择计算性的分页和非计算性的分页进行操做。
在大多数的客户环境中, 理想的方式是始终让内核只选择非计算性的分页进行操做,由于与对非计算性的分页(即数据文件缓存)进行分页相比,对计算性的分页(例如,进程的堆栈、数据等等)进行分页一般会对进程产生更大的性能开销。所以,能够将 lru_file_repage 可调参数设置为 0。在这种状况下,当 numperm 在 minperm 和 maxperm 之间的时候,AIX 内核始终选择非计算性的分页进行操做。
minperm 建议值:5%
maxperm 建议值:20%
4.3 maxclient
除了 minperm 和 maxperm 可调参数以外,还有一个 maxclient 可调参数。
maxclient 可调参数指定应该用于缓存非计算性客户端分页的 大内存量的限
制。由于全部非计算性客户端分页是非计算性永久存储分页总数的子集,因此 maxclient 限制必须始终小于或者等于 maxperm 限制。非计算性客户端分页的数目称为 numclient。vmstat –v 命令能够显示系统
的 numclient 值占系统实际内存的百分比。
在缺省状况下,maxclient 限制是严格的限制。这意味着,AIX 内核不容许非计算性的客户端文件缓存超出 maxclient 限制的范围(也就是说,AIX 内核
不容许 numclient 超出 maxclient)。当 numclient 达到 maxclient 限制时,AIX
内核将采用特殊的、仅客户端的模式开始分页替换。在这种仅客户端的模式中, AIX 分页替换守护进程将严格地选择客户端分页进行操做。 maxclient
# vmstat -v
4980736 memory pages
739175 lruable pages
432957 free pages
1 memory pools
84650 pinned pages
80.0 maxpin percentage
20.0 minperm percentage <<- system’s minperm% setting
80.0 maxperm percentage <<- system’s maxperm% setting
2.2 numperm percentage << % of memory containing non-comp. pages
16529 file pages <<- # of non-comp. pages
0.0 compressed percentage
0 compressed pages
2.2 numclient percentage <<- % of memory containingnon-comp. client pages
80.0 maxclient percentage <<- system’s maxclient% setting
16503 client pages <<- # of client pages
0 remote pageouts scheduled
0 pending disk I/Os blocked with no pbuf
0 paging space I/Os blocked with no psbuf
2484 filesystem I/Os blocked with no fsbuf
0 client filesystem I/Os blocked with no fsbuf
0 external pager filesystem I/Os blocked with no fsbuf
0 Virtualized Partition Memory Page Faults
0.00 Time resolving virtualized partition memory page faults
所以,在上面的示例中,一共有 16529 个非计算性的文件分页被映射到了内存中。这些非计算性的分页使用了 2.2% 的内存。在这 16529 个非计算性的文件分页中,有 16503 个是客户端分页。
5.2 svmon –G
# svmon -G
size inuse free pin virtual memory 786432 209710 576722 133537 188426 pg space 131072 1121
work pers clnt pin 133537 0 0 in use 188426 0 21284
要了解系统实际内存的使用状况,svmon显示了下面三列:
? work——工做存储
? pers——持久性存储(持久性存储分页都是非客户端分页,即 JFS 分页。)
? clnt——客户端存储
对于每种分页类型,svmon将显示下面两行:
? inuse——映射到内存中的 4K 分页的数目
? pin ——映射到内存中的、且固定的 4K 分页的数目(pin 是inuse的子集)
所以,在上面的示例中,一共有 188426 个工做存储分页映射到内存中。在这
188426 个工做存储分页中,有 133537 个是固定的(也就是说,不能换出的)。示例中显示没有持久的存储分页(由于系统中没有使用 JFS 文件系统)。一共有 21284 个客户端存储分页,它们中没有一个是固定的。
svmon 命令没有显示永久存储分页的数目,但这个数目能够由 svmon 的输出计
算获得。如前所述,永久存储分页的数目是持久性存储分页数目和客户端存储分
页数目的总和。所以,在上面的示例中,系统中一共有 21284 个永久存储分页:
0 persistent storage pages + 21284 client storage pages = 21284 permanent storage pages
5.3 具备 佳性能的可调参数
lru_file_repage = 0 maxperm = 90% maxclient = 90% minperm = 3% strict_maxclient = 1 (default) strict_maxperm = 0 (default) |
查看内核参数的含义:
修改参数为了让 os 从新启动也成效,能够不本身用 shell 脚本,直接加 -r 参数,这样都记录在 /etc/tunables/nextboot 中了 vmo -r -o minperm%=5 vmo -r -o maxclient%=20 vmo -r -o maxperm%=20
另外说明,为了让内存限制成为 hard limit,能够设置
vmo -r -o strict_maxperm=1
启用内存类似性:
vmo -o memory_affinity=1
About Me
...............................................................................................................................
● 本文整理自网络
● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和我的微信公众号(xiaomaimiaolhr)上有同步更新
● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/
● 本文博客园地址:http://www.cnblogs.com/lhrbest
● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/
● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● QQ群:230161599 微信群:私聊
● 联系我请加QQ好友(646634621),注明添加原因
● 于 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成
● 文章内容来源于小麦苗的学习笔记,部分整理自网络,如有侵权或不当之处还请谅解
● 版权全部,欢迎分享本文,转载请保留出处
...............................................................................................................................
拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。
![]()
![]()