S2-性能参数
Written by bixuan on 2009年01月22号 – 14:40S2:性能参数
每个计算机系统都有4个传统的参数:
- 延迟
- 吞吐量
- 利用率
- 效率
优化系统性能就是要减少延迟、增加其他3个参数的值。尽管这个定义很直观,但优化本身并不直观,因为这些参数彼此之间可以互相消长,而且它们会随时间、服务内容种类已经许多其他环境改变而改变。另外,对某个机构的目标来说,有些性能参数比其他参数重要。
延迟和吞吐量
延迟:是指请求与开始看到结果直接的间隔时间。有人选择延迟定义为开始请求和完成该请求直接的时间。
延迟的单位是时间。
吞吐量:是指单位时间内能够处理的传输量。
计算吞吐量的简单方法:累加一段时间内的传输量,然后再将其除以这段的时间。但这样计算可能会产生正确的结果,也容易误导人,因为它忽略了在样本时间内传输速度的变化。最好是采用:每个采用点相除,然后再累加算平均值。
度量网络的延迟
注意这里考虑的是网络延迟,不是应用程序的延迟(应用程序的延迟是指运行在网络服务器上的应用程序本身从开始到返回结果需要花费的时间)。
因特网大部分延迟可能是路由器的存储和转发能力决定的。路由器接收一个进入的数据包,并将它放在一个缓冲区里,查看其报头信息,然后决定该数据包下一步将发往何处。即时已经决定发往何处,通常路由器仍然需要等待下一个时隙用户该数据包的发送,于是数据包的延迟在很大程度上取决于Web服务器和用户直接的路由跳数的数目。
也就是说,路由跳数的数目(hops)直接决定了网络的延迟。
那么利用traceroute功能就可以查到上文提到的hops,也可以使用mtr,mtr是结果和traceroute和ping的功能。
Hops越少约好。
Ping的延迟在50ms左右比较理想,超过100ms就不太理想了。
度量网络延迟和吞吐量
度量延迟和吞吐量最简单的方法是:弄清楚浏览器的高速缓存区的大小和从服务器获得一个特定页面所花的时间。可以使用lynx或者curl命令来获取相关数据。
比如:time lynx -source http://www.51.com/ > /dev/null,这种方法也可以认为是Web性能监控的stopwatch方法。
使用FTP
另一个度量网络吞吐量的方法是,利用FTP在本机和某个远程系统之间来回传输文件。但是使用FTP也有个不足,因为传输文件如果涉及到磁盘操作,那么这样做也是不准确的。
取消任何可能FTP传输引起的访问磁盘的请求。
必须利用大文件,因为每次小文件的创建都需要一个磁盘访问。
不过,可以利用某些版本ftp的将结果输出到/dev/null来达成结果。
ftp> get bigfile > /dev/null
其实用wget、curl等命令也是一样的,都是基于TCP的传输。但是不能清楚的区分网络性能和服务器性能。
以上也可以写成脚本来记录一段时间的运行情况,这样获得的结果会准确。
利用率
简单地说,利用率就是实际使用某组件的容量和该组件本身容量的百分比。数学表达式:
利用率 = 已使用容量 / 总容量 * 100%
为了充分利用所花的钱,都希望组件的利用率为100%,但是实际上并不必须如此。因为当利用率太高时就会出现很大的延迟。就经验而言,许多组件在利用率约为70%时性能最好。
perfmeter工具为监控系统利用率提供了一种很好的图形界面。
有效性
有效性 = 吞吐量 / 利用率 * 100%(作为比较组件的一个基本方面是有用的,但在其他方面并没有多大用处,因为它仅仅是由其他两个性能参数相除得的结果)
一种更有用的有效性度量是计算单位开销获得的性能,这通常叫成本效率(cost efficiency)。
优化性能就是增加成本效率的艺术,即充分利用所花的每一分钱。实际上,因特网本身所具有的流行性就说明了这样一个事实。比如:email的延迟吞吐量比传统的邮递要快,成本低。
成本效率(cost efficiency)= 单位开销所得的性能
返回上一章:《3H1L》
分享到 Google Buzz
Tags: parameters, performance, 利用率, 参数, 吞吐量, 延迟, 性能, 效率
Posted in 3H1L |
五月 7th, 2009 at 18:19
如何弄清楚弄清楚浏览器的高速缓存区的大小?
五月 21st, 2009 at 11:48
[...] 评价性能参数有以下4个指标: [...]
五月 21st, 2009 at 21:56
sorry,这个还真不知道呢:$