高级性能调优概念
2009-07-11 08:32:32 来源:WEB开发网内存调优涉及许多方面。最简单的调优措施是确保 RAM 足以容纳应用程序,而不需要使用交换空间。操作系统的虚拟内存子系统允许应用程序分配的内存超过系统上实际存在的内存量,不足的部分由磁盘上的临时存储组成。与直接访问 RAM 中的内存块相比,把内存块交换到磁盘并交换回来要慢得多,所以一般情况下应该避免这种做法。
虚拟内存子系统需要调优,因为在系统用完内存之前和发生某些事件时,可能会把内存块写到磁盘,这时不得不使用交换空间。要检查的主要是什么时候使用虚拟内存。随着 UNIX® 系统上的空闲内存被逐渐分配掉,内核最终会发现它必须要寻找可以交换出去的内存页面。在此之后,如果内核预计必须为请求内存的进程分配内存,它就会开始把一些页面交换到磁盘。如果您知道内存足以处理工作负载,最好推迟这两种交换活动。
在 Solaris™ 上,通过 /etc/system 中的可调项来调整内存。在 IBM® AIX® 操作系统上,使用 vmo 命令。在 Linux® 中,使用 /etc/sysctl.conf。它们的作用会随着操作系统的发展而变化,所以在做任何修改之前要仔细研究。
最后,安装更多内存让文件系统可以把文件和元数据缓存在内存中。大多数 UNIX 系统会尝试用空闲内存执行缓存,这就是系统常常看起来没有空闲内存的原因。缓存可以减少磁盘活动,这对于 Web 服务器等工作负载非常重要。
磁盘
磁盘比内存慢得多,所以过多的磁盘活动是许多应用程序性能低下的原因。磁盘活动可能源于交换,也可能源于应用程序或操作系统的请求。过多的日志记录活动也会争用磁盘。
发现磁盘瓶颈的最佳工具是 iostat。这个工具可以指出在特定时间点发生了多少读写操作,以及磁盘控制器的饱和程度有多大。如果有多个磁盘,那么把负载分配到不同的磁盘上是加快读写速度的有效方法,因为磁盘延迟的最大组成部分是寻道时间。不断增长的文件(比如日志文件和数据库日志)应该放在单独的磁盘上,与应用程序的磁盘和数据库分开。
更多精彩
赞助商链接