First off, it is not a bug, it is a feature that is necessary to flush
the zfs ARC. Otherwise you get rather excessive performance. This is
done through a script called fs_flush, though, and it is easy to comment
out that part of the script. The script is found in filebench/scripts
(usr/benchmarks/filebench/scripts/fs_flush on Solaris machines.
For example, here is the beginning of the fs_flush script:
#!/usr/bin/perl
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
#
# Put commands in here to flush the file system cache after
# file set creation but prior to steady state
#
# For most file systems, filebench already handles fs cache flushing
# For ZFS, it needs some help, so this script does
# "zpool export <poolname>" then "zpool import <poolname>"
#
$fs = $ARGV[0];
$dir = $ARGV[1];
#
# if not zfs, inform user and exit.
#
if (($fs =~ m/^zfs$/) != 1) {
print "filesystem type is: $fs, no action required, so exiting\n";
exit(0);
}
Just put exit(0); in the script without a conditional, and it will do
nothing.
All versions will do this on zfs by default.
I am not sure how to get just the filebench binaries, but I can tell you
that they are installed as part of OpenSolaris. Everything you need to
run filebench, including the appropriate go_filebench binary, lives in
/usr/benchmarks/filebench on the machine that you have installed
OpenSolaris on.
Drew
On 03/12/09 11:21 AM, Asif Iqbal wrote:
Where can I get the latest filebench source code from?
The filebench 1.3.4 has a bug. It unmounts the root pool while doing a
test. I was using fileio.prof and using zfs instead of tmpfs as my
filesystem.
I see the source can be broswed from here
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/filebench/
But how do I get the code?
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org