下载后可任意编辑性能监控之 Swap 空间管理眼瞅着电子商务如火如荼的开展,网站服务器的性能变得尤其重要。一旦服务器的能力不能满足用户的需要,就会对用户的服务大打折扣,那么就需要对服务器进行升级扩容。但是,有些时候只需对服务器进行一些适当的性能调整,便可以越过性能的瓶颈,大大提高服务器的吞吐能力,从而减少服务器升级的费用。今日我们来看一下 Solaris 平台上 Swap(交换)空间的基本概念、实现的原理以及对 Swap(交换)空间进行监控的方法和调整的策略。 什么是 SWAP(交换)空间? 对于一般的朋友来说,很少会接触 Swap(交换)空间,在他们看来 Swap 区只不过是磁盘上的一两个分区或是几个Swap(交换)文件,当系统没有足够的物理内存来处理当前进程的时候,就利用 Swap(交换)空间作为虚拟内存的临时存储空间,这种说法从技术角度来说是没有错的,但 Solaris 在实现 Swap 时有其非常独特的地方。 SWAP 空间作用 众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是“虚拟内存”是隔离每个进程的安全保护网,使每个进程不受其他程序的干扰。 Swap 空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap 空间中,等到那些程序要运行时,再从 Swap 中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行 Swap 交换。这种现象对于计算机使用者是常常遇到的。但是虚拟内存仍然是硬盘上的一个文件,读写速度比内存慢好多,所以大家不能过度的依赖虚拟内存。 有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到 Swap 中(假如这样的话,Swap 会不堪重负),下载后可任意编辑有相当一部分的数据直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出去时,文件部分的数据就没有必要放到 Swap 空间中了,假如是读文件操作,那么内存数据直接就释放了,不需要交换出来,因为下次需要时,直接从文件系统就能恢复;假如是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用 malloc(3C)和 new...