该比例系数显示了随着数据库大小的增长,每秒处理的事务数的变化趋势。绿线表示数据库大小 (MB),红线表示每秒处理的事务数。该图表明,随着数据库大小增加,每秒处理的事务数将会下降。
图 2. 交叉编译的 PostgreSQL 二进制程序的可伸缩性图图 2 显示了可伸缩性图。它表明随着客户端数量增加,每秒处理的事务数也会增加。
PostgreSQL 结果(原生编译)
测试原生编译的二进制程序时,使用了与交叉编译的 PostgreSQL 完全相同的配置设置和数据库位置 (/tmp/usr/local/pgsql/data)。要确保数据库是干净的,在开始测试之前请丢弃 results 和 pgbench 数据库。
Postgresql# drop database results;
DROP DATABASE
postgresql# drop database pgbench;
DROP DATABASE
比例系数和可伸缩性图如 图 3 和 图 4 所示。正如之前所提到的,该比例系数显示了随着数据库大小的增长,每秒处理的事务数的变化趋势。绿线表示数据库大小 (MB),红线表示每秒处理的事务数。
图 3. 原生构建的 PostgreSQL 二进制程序的比例系数图 4 中的可伸缩性图显示,随着客户端数量增加,每秒处理的事务数也会增加。
图 4. 原生构建的 PostgreSQL 二进制程序的可伸缩性图您可以注意到,交叉编译的二进制程序的曲线图与原生编译的二进制程序的曲线图非常相似。这个简单测试表明,x86 服务器上的交叉编译可得到拥有与原生编译的代码相同的性能特征的二进制程序。
Apache httpd 测试设置和结果为了测试 Apache httpd,我使用了 Apache httpd 源代码发行版随带的基准测试工具 ab。类似于 PostgreSQL,Apache httpd 是使用 toolchain 交叉编译器构建的,并将二进制程序传输到 PowerLinux 服务器。我修改了默认的 httpd.conf 文件,以便将 htdocs 目录更改为指向本地文档目录。剩余设置保留默认值。
我用于运行 ab 工具的命令行和参数如下:
#./ab -n 500000 -c 100 -g out1.data
我运行该命令 3 次,将输出写入到 out1.data、out2.data 和 out3.data,并使用 gnuplot 实用程序和 benchmark.tpl 文件中的参数描绘了这些文件的图像,如下所示。
# gnuplot benchmark.tpl
benchmark.tpl
# output as png image
set terminal png
# save file to "benchmark.png"
set output "benchmark.png"
# graph title
set title "Benchmark for 9.3.4.241"
# aspect ratio for image size
set size 1,1
# enable grid on y-axis
set grid y
# x-axis label
set xlabel "Request"
# y-axis label
set ylabel "Response Time (ms)"
# plot data using column 10 with smooth sbezier lines
plot "out1.data" using 10 smooth sbezier with lines title "Benchmark 1:", \
"out2.data" using 10 smooth sbezier with lines title "Benchmark 2:", \
"out3.data" using 10 smooth sbezier with lines title "Benchmark 3:"
有关 Apache 基准测试工具的更多信息,请参阅本文末尾的 参考资料 部分。
Apache httpd 结果(原生编译和交叉编译)
gnuplot 实用程序为每个测试生成一个名为 benchmark.png 的文件。这些图可以使用任何图像查看器进行查看。两幅图如 图 5 和 图 6 所示。
图 5 显示了原生编译的 httpd 的曲线图。
图 5. 原生编译的 httpd 的响应时间曲线图图 6 显示了交叉编译的 httpd 的曲线图。
图 6. 交叉编译的 httpd 的响应时间曲线图您可以注意到,两个曲线图显示出了非常相似的性能特征。读者可以使用不同的 Web 文档和数据执行更���测试。
回页首
功能和调试发现