我们都晓得,直接从显存读写数据要比从硬碟读写数据快得多,因而更希望所有数据的读取和写入都在显存中完成,但是显存是有限的,这样就引出了数学显存与虚拟显存的概念。化学显存就是系统硬件提供的显存大小,是真正的显存。相对于化学显存,在Linux下还有一个虚拟显存的概念qq linux,虚拟显存是为了满足数学显存的不足而提出的策略,它是借助c盘空间虚拟出的一块逻辑显存。用作虚拟显存的c盘空间被称为交换空间(又称swap空间)。作为化学显存的扩充,Linux会在化学显存不足时,使用交换分区的虚拟显存,更详尽地说,就是内核会将暂时不用的显存块信息讲到交换空间,这样一来,化学显存得到了释放,这块显存就可以用于其他目的,当须要用到原始的内容时,这种信息会被重新从交换空间读入化学显存。Linux的显存管理采取的是分页存取机制,为了保证化学显存能得到充分的借助,内核会在适当的时侯将化学显存中不时常使用的数据块手动交换到虚拟显存中,而将常常使用的信息保留到化学显存。要深入了解Linux显存运行机制,须要晓得下边提及的几个方面:有时我们会见到如此一个现象,Linux化学显存还有好多,并且交换空间也使用了好多,虽然这并不奇怪。
比如,一个占用很大显存的进程运行时,须要花费好多显存资源,此时都会有一些不常用页面文件被交换到虚拟显存中,但后来这个占用好多显存资源的进程结束并释放了好多显存时,刚刚被交换出去的页面文件并不会手动交换进化学显存(除非有这个必要),这么此时系统数学显存都会空闲好多,同时交换空间也在被使用,就出现了刚刚所说的现象了。最后linux 内核 占用内存,交换空间的页面在使用时会首先被交换到化学显存,假如此时没有足够的数学显存来容纳那些页面linux 内核 占用内存,它们又会被马上交换出去,这么一来,虚拟显存中可能没有足够的空间来储存那些交换页面,最终会造成Linux出现假死机、服务异常等问题。Linux其实可以在一段时间内自行恢复,并且恢复后的系统己经基本不可用了。为此,合理规划和设计Linux显存的使用是十分重要的,关于数学显存和交换空间的大小设置问题,取决于实际所用的硬碟大小,但大致依循这样一个基本原则:假如显存较小(依据经验,化学显存大于4GB),通常设置swap分区大小为显存的2倍;假如化学显存小于4GB,而大于16GB,可以设置swap分区大小等于化学显存;假如显存大小在16GB以上,可以设置swap为0,但并不建议如此做linux课程,由于设置一定大小的swap分区是有一定作用的。关于怎么完善swap分区,可阅读《Linuxswap分区及作用》一节做详尽了解。