On Thu, Mar 12, 2009 at 5:09 PM, Andrew Wilson <[email protected]
> wrote:
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.
But I like to filebench zfs fs too
See if I have two pools. One rootpool and one testpool. I still want
to do the test on testpool.
pool: rpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
splunk ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t0d0s0 ONLINE 0 0 0
c0t1d0s0 ONLINE 0 0 0
errors: No known data errors
pool: testpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
raidz2 ONLINE 0 0 0
c0t2d0 ONLINE 0 0 0
c0t3d0 ONLINE 0 0 0
c0t4d0 ONLINE 0 0 0
c0t5d0 ONLINE 0 0 0
c0t6d0 ONLINE 0 0 0
logs ONLINE 0 0 0
c0t7d0 ONLINE 0 0 0
errors: No known data errors
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 6.91G 60.0G 35.5K /rpool
rpool/ROOT 3.91G 60.0G 18K legacy
rpool/ROOT/rootset 3.91G 60.0G 3.78G /
rpool/ROOT/rootset/var 129M 60.0G 129M /var
rpool/dump 1.00G 60.0G 1.00G -
rpool/export 249K 60.0G 19K /export
rpool/export/home 230K 60.0G 230K /export/home
rpool/swap 2G 62.0G 90K -
testpool 57.8G 142G 57.8G /testpool
# cat fileio.prof
[..]
DEFAULTS {
runtime = 120;
dir = /testpool;
stats = /tmp;
filesystem = zfs;
description = "fileio zfs";
filesize = 10g;
}
[..rest as default..]
see how it is miserably failing
bash-3.00# /opt/filebench/bin/filebench fileio
parsing profile for config: randomread2k
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
randomread2k/thisrun.f
FileBench Version 1.3.4
666: 0.007: Random Read Version 2.0 IO personality successfully
loaded
666: 0.007: Creating/pre-allocating files and filesets
666: 0.007: File largefile1: mbytes=10240
666: 0.007: Creating file largefile1...
666: 0.008: Preallocated 1 of 1 of file largefile1 in 1 seconds
666: 0.008: waiting for fileset pre-allocation to finish
666: 104.412: Running '/opt/filebench/scripts/fs_flush zfs /testpool'
'zpool export rpool'
cannot unmount '/': Device busy
'zpool import rpool'
cannot import 'rpool': no such pool available
666: 105.399: Change dir to
/tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/randomread2k
666: 105.399: Starting 1 rand-read instances
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: randomread8k
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
randomread8k/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbench.La4ub: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: randomread1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
randomread1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchXMa4vb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: randomwrite2k
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
randomwrite2k/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchKNa4wb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: randomwrite8k
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
randomwrite8k/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchxOa4xb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: randomwrite1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
randomwrite1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchkPa4yb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: singlestreamread1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
singlestreamread1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbench9Pa4zb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: singlestreamreaddirect1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
singlestreamreaddirect1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchWQa4Ab: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: singlestreamwrite1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
singlestreamwrite1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchJRa4Bb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: singlestreamwritedirect1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
singlestreamwritedirect1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchwSa4Cb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: multistreamread1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
multistreamread1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchjTa4Db: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: multistreamreaddirect1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
multistreamreaddirect1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbench8Ta4Eb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: multistreamwrite1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
multistreamwrite1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchVUa4Fb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
parsing profile for config: multistreamwritedirect1m
Running /tmp/splunk-test-zfs-fileio-Mar_13_2009-00h_18m_02s/
multistreamwritedirect1m/thisrun.f
FileBench Version 1.3.4
Cannot open shm /var/tmp/fbenchIVa4Gb: No such file or directory
Generating html for /tmp/splunk-test-zfs-fileio-
Mar_13_2009-00h_18m_02s
bash-3.00#
What I don't understand why it is trying to export rpool.
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?
--
Asif Iqbal
PGP Key: 0xE62693C5 KeyServer: pgp.mit.edu
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?