p; 磁盘子系统
4)磁盘子系统 32M,16M(实做在硬盘中) 硬盘
从上面三个样例可以看出,快慢是相对的,对于硬盘来说,内存太快了;但对于
CPU来说,内存太慢了。(蜗牛说乌龟飞速地爬过去了)
1和4是硬件级别的,任何操作系统都会不知不觉地利用到。
2和3 则是软件级别的,操作系统和NxD会利用内存来做缓存,因为对于硬盘来说,内存这只乌龟跑得太快了。
由于2和3都使用内存做缓存,而服务器上的内存并不是无限多的,所以并不是说你给NxD设置的缓存越大越好,3耗用的内存越多,2能用的就越少。(总数有限制)
还好,Linux可以支持您能买得起的很多内存,这就是我们经常强调的对于NxD Linux服务器来说,可以盲目增加内存。
下面我们按通常的总物理内存数举例:
一.NxD只使用了一个物理硬盘/阵列[名称:phy]:【纯物理模式】
2G):不要设置NxD的服务端缓存了。《Linux本身都不够用》
4G): 1024M做phy全盘缓存
8G): 2048M做phy全盘缓存
12G): 4096M做phy全盘缓存
16G): 8192M做phy全盘缓存
24G): 10,240M做phy全盘缓存
为什么总是在强调使用全盘缓存呢?因为伟大的实践者告诉我们,全盘缓存可以有效地降低服务端负载。
二.使用了一个物理硬盘/阵列[名称:phy]:,郁闷的是另外一种
配置的机器用phy物理硬盘就启动不了,所以增加了一个nv78096的映像;这个映像启动一部分机器,挂phy的第二,第三分区做
游戏。【镜像+物理】
2G):不要设置NxD的服务端缓存了。《Linux本身都不够用》
4G): 256M做nv78096全盘缓存,768M做phy全盘缓存
8G): 1024M做nv78096全盘缓存,1024M做phy全盘缓存
12G): 2048M做nv78096全盘缓存,2048M做phy全盘缓存
16G): 4096M做nv78096全盘缓存,4096M做phy全盘缓存
24G): 5120M做nv78096全盘缓存(当然不要超出nv78096的大小), ,8192M做phy全盘缓存
大家看出什么规律了吗?就是物理内存数-所有磁盘使用的缓存总和=保留给linux的内存数。[对于设置所有磁盘使用的缓存总和>物理内存数的人,我们集体鄙视他。]
注意:对于NxD来说,物理磁盘和映像没有任何差别。只要有任何客户机用到某个磁盘,客户机启动之后就会导致NxD向操作系统申请设置的磁盘缓存。这就是为什么
网众总是在强调,不要设置太多的映像…不要设置太多的映像…,因为大多数情况下不同的映像中都是windows XP的系统文件,导致重复的缓存内容太多、缓存的效率下降。基于这种原则,我就不列出三个磁盘之上的缓存设置方法,否则就象在鼓励犯罪了。
客户端缓存:(比服务端缓存更重要)
NxD的客户端缓存耗用的是客户机的内存,由于客户机数量众多,所以单从数量上来讲其重要性就超过服务端缓存;除了数量上的优势之外,客户端缓存还有一个好处,它可以减少网络上的数据流通,所以从理论上来说,所有的交换机厂家都应该感激网众,因为
网众让它们可以用更便宜的芯片来制造交换机。
NxD
无盘有一个比较特殊的S:盘,相信所有自己安装过NxD的客户都对S: 盘不陌生。它在NxD系统中具有非常重要的作用,所以NxD的客户端缓存设置要特别地强调一下,您就算再小气,也应该给S:盘设置一些缓存
S:盘的缓存设置是随每台客户机的,在Boot管理器中进行如下设定:
1)512M: 32M
2)1024M:128M
3)2048M:256M
4)3072M:256M
5)4096M:256M
6)8192M:大哥,别逗了。
7)256M,$#$#&^%&%
客户端读写缓存:(在IO管理器中设定,其实对客户机来说就是一种分组)
1)512M: 不要设置了
2)1024M: 128M读/写缓存
3)2048M:256M 读/写缓存
4)3072M: 256M 读/写缓存(保守)
5)4096M: 512M 读/写缓存(保守)
(保守):表明这种设置方式是偏保守的,您完全可以把它调得大一些。
*注意*:客户端读写缓存是随磁盘的,我们来举个例,仍然用phy和nv78096这个磁盘。在我家的这个虚拟
网吧中,假设vir001~vir100是用phy一个磁盘,而vir101~vir999是用nv78096+phy这两个磁盘。
[512M客户机内存:]
vir001~vir100:
32M(s:) + 0M(phy) = 32M,穷人也有穷人的用法。
Vir101~vir999:
32M(s:)+0M(phy)+0M(nv78096) = 32M
[1024M客户机内存:]
vir001~vir100:
128M(s:) + 128M(phy) = 256M
Vir101~vir999:
128M(s:)+128M(phy)+128M(nv78096) = 384M//这个已经有点夸张了,可以把phy和nv78096设置为64M,则变为128+64+64=256M
[2048M客户机内存:]
vir001~vir100:
256M(s:) + 256M(phy) = 256M
Vir101~vir999:
256M(s:)+256M(phy)+256M(nv78096) = 768M//这个已经有点夸张了,可以把phy和nv78096设置为128M,则变为256+128+128=512M
[4096M客户机内存:]
vir001~vir100:
256M(s:) + 512M(phy) = 768M
Vir101~vir999:
256M(s:)+512M(phy)+512M(nv78096) = 1280M//这个已经有点夸张了,可以把phy设置为512,和nv78096设置为256M,则变为256+512+256=1024M
[8192M客户机内存:]
拔下4个G捐献给希望工程。
注意:对客户机设置缓存,建议趋于保守,意指尽量保留内存给windows,因为那些写
游戏的美工们认为劳动人民拥有无限的内存,而保卫公共安全的一些人则认为劳动人民拥有无限的忍耐度……这个可以有,但是真没有