Coder Social home page Coder Social logo

filebench / filebench Goto Github PK

View Code? Open in Web Editor NEW
338.0 338.0 121.0 1.14 MB

File system and storage benchmark that uses a custom language to generate a large variety of workloads.

Home Page: https://github.com/filebench/filebench/wiki

License: Other

Makefile 0.30% C 64.67% M4 1.25% C++ 12.47% Yacc 7.49% Lex 0.96% Roff 2.42% Filebench WML 10.45%

filebench's Introduction

Filebench - A Model Based File System Workload Generator
========================================================


INTRODUCTION
------------

Filebench is a file system and storage benchmark that can generate a large
variety of workloads. Unlike typical benchmarks it is extremely flexible and
allows to specify application's I/O behavior using its extensive Workload Model
Language (WML). Users can either describe desired workloads from scratch or use
(with or without modifications) workload personalities shipped with Filebench
(e.g., mail-, web-, file-, and database-server workloads). Filebench is equally
good for micro- and macro-benchmarking, quick to setup, and relatively easy to
use.


INSTALLATION
------------

Filebench compilation and installation is simple, and can be completed in two
steps. However, if you have downloaded a release tarball from Github
(https://github.com/filebench/filebench/releases), you can go ahead and skip to
Step 2.


Step 1: Generating autotool scripts

Makefile.in and configure files are not included in the repo, so they will have
to be generated. To do so, make sure you have libtoolize and automake tools
installed and run the following commands:

$ libtoolize
$ aclocal
$ autoheader
$ automake --add-missing
$ autoconf


Step 2: Compilation and installation

Before proceeding, make sure yacc and lex are available in your system. Then,
you can proceed with configuration, compilation, and installation as usual:

$ ./configure
$ make
$ sudo make install


QUICK-START GUIDE
-----------------

To quickly introduce a new user to Filebench we use two examples demonstrating
two different typical Filebench workflows: 1) describe a user-defined workload
in Workload Model Language (WML) and generate the workload; 2) generate one of
the predefined Filebench workloads. 
The description in this guide assumes Filebench 1.5-alpha1 or higher.


Example 1: User-defined workloads

First step is to create the description of the workload (so called workload
personality) in WML language. Typically, workload personalities are stored in
files with '.f' extension. In this example we describe a very simple workload
consisting of two processes with three threads each. Every thread continuously
picks a file among many, reads it, and then closes the file. Here is the
corresponding workload personality:

01  define fileset name="testF",entries=10000,filesize=16k,prealloc,path="/tmp"
02
03  define process name="readerP",instances=2 {
04    thread name="readerT",instances=3 {
05      flowop openfile name="openOP",filesetname="testF"
06      flowop readwholefile name="readOP",filesetname="testF"
07      flowop closefile name="closeOP"
08    }
09  }
10
11  run 60

Four main entities in Filebench are 'filesets', 'processes' consisting of
'threads', and 'flowops'. In the first line we define a fileset containing
10,000 files of 16KiB size each in /tmp directory. Filebench is instructed to
precreate all files in the fileset before executing the actual workload.

In the third and fourth lines we define two identical processes each consisting
of three identical threads. Every thread in Filebench repeats flowops (operations)
defined in it in a loop. Lines 05-07 describe the flowops that constitute the
threads: open a file in "testF" fileset, read the file  completely, and close
it. Finally, in the 11th line we indicate to run the workload for 60 seconds.

In more complex workloads one can define any number of filesets, multiple
different processes and threads, use a variety of flowops and attributes, and
more. Refer to the complete WML vocabulary for details at
https://github.com/filebench/filebench/wiki/Workload-model-language

Assuming that the personality is saved in 'readfiles.f' file, one can then
generate corresponding workload by running 'filebench -f readfiles.f' command.


Example 2: Pre-defined workloads

Filebench comes with several predefined micro- and macro-workloads (e.g.,
webserver, fileserver, mailserver) which are also described in WML, not
differently than the workload in Example 1 above. In the source code tree,
workloads are located in the workloads/ directory and are typically installed in
/usr/local/share/filebench/workloads/ during 'make install' (though this can
differ from one installation to another).

We do *not* recommend to directly use workload files from workloads/ or
/usr/local/share/filebench/workloads/ directories. The main reason is that these
workloads *are not properly sized* (e.g., in terms of the dataset sizes) to a
particular system. For instance, the initial dataset size of the webserver
workload is only slightly larger than 16MiB, which is typically not the size you
want to test the system containing multiple gigabytes of RAM with.

So, instead, copy webserver workload to any other directory:

$ cp /usr/local/share/filebench/workloads/webserver.f mywebserver.f

Then edit the copied file to increase the dataset size by setting the number of
files ('entries' attribute of a fileset) to an appropriate value. Finally, run
the workload:

$ filebench -f mywebserver.f

An extended discussion on how to scale Filebench workloads can be found at
https://github.com/filebench/filebench/wiki/Scaling-Filebench-workloads


SUPPORT
-------

To ask questions about Filebench, report bugs, or request new features, you can
use GitHub's issue tracking system. This is the central hub for both user support
and bug tracking, and can be found at https://github.com/filebench/filebench/issues

filebench's People

Contributors

aaronknister avatar gamvrosi avatar jankara avatar joung96 avatar mashtizadeh avatar omerzilb avatar sasababa avatar sectorsize512 avatar swamintn avatar tadokoro avatar vmingchen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

filebench's Issues

Bring github wiki uptodate

  1. validate that all flowops there work
  2. valideate that all that are in FB - are on that page
  3. write more reasonable descriptions

Reported by: vass-vass

CC issues with build infrastructure

Two issues have been reported:

  1. /usr/ucb/cc doesn't compile filebench (though Sun Studio does)
  2. 'cc' is being hard coded:
    "
    The root cause is in configure.in, which has the following code:

AC_PROG_CC([cc gcc])
...
case "$host_os$host_cpu" in
solarissparc*)
CC=cc
...
solarisi386*)
CC=cc
...
darwin)
CC=cc
...
gnu*|linux*)
CC=cc
...
;;
esac

AC_PROG_CC actually works fine(it can generate correct value for
CC), but CC is hardcoded to "cc" in later code. "

Reported by: sfjuggernaut

directio not used in linux

the directio attributes is not implemented.

A small patch to have it works :

Index: fileobj.c

RCS file: /cvsroot/filebench/filebench/filebench/fileobj.c,v
retrieving revision 1.44
diff -r1.44 fileobj.c
286a287,291
> #ifdef LINUX_PORT
> if (attrs & FLOW_ATTR_DIRECTIO)
> open_attrs |= O_DIRECT;
> #endif
>

Reported by: fbacchella

Difficult to specify --with-gsl

If using an installed version of gsl (such as with many
linux distros), --with-gsl doesn't do a very good job
of finding the header files or libraries.

Additionally, on Linux, if --with-gsl is not specified
the build in the filebench directory will fail saying
that FILEBENCHDIR is not defined because the -I before
-DFILEBENCHDIR=... does not have a path to the proper
include directory.

With the attached patch, the following command will
work on Linux (tested with Ubuntu Dapper)

./configure --prefix=/tmp/fb --with-gsl=/usr

There is one other bug (stay tuned) that keeps the
build from completing without editing intermediate files.

Reported by: gerdts

stat vs stat64 and similar

Organize situation with stat and stat64 and similar stuff. Looks like we can use stat() everywhere?...
BTW, we're getting warnings on MacOS because of stat vs stat64....

Reported by: *anonymous

PATCH - broken compile at parser_lex.l

When compiling filebench, parser_lex.c (generated from
parser_lex.l) fails because the macro INITIAL is used
before it is defined. This patch moves the use to
later in the source to avoid this problem.

Reported by: gerdts

PATCH - support for smaller memory machines

The attached patch seems to work at first blush, but is
certainly in need of some peer review.

The intent of the patch is to allow you to compile
filebench so that it will run on machines with less
than 1 GB RAM. In my case, I have been trying to use
filebench on a Linux box with 512 MB and have found
that it cannot even start because the initial mmap() of
the shared memory area fails.

This patch adds the --with-memsize option to configure.
By default, this value is 4096. By using "./configure
--with-memsize=2048 ..." I can successfully run the
webproxy and webserver workloads, but only with
$nthreads set to a value lower than 100 (20 works).
Setting the size as low as 512 will cause workloads
like webproxy to fail, but mongo works OK.

Note that because this just adjusts a value in a
Makefile, you will need to "make clean" if you
reconfigure with a different value than previously
used. Simply removing filebench/ipc.o and running make
should do the trick as well, but I have not tested this.

Reported by: gerdts

Installing sparc .pkg partially fails, and wrong arch

Installing partially fails onto a Solaris 10/SPARC host.

cat /etc/release

Solaris 10 3/05 s10_74L2a SPARC
Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 22 January 2005

pkgadd -d . filebench
...

[ verifying class <none> ]
/opt/filebench/bin/davenet <linked pathname>
ERROR: attribute verification of </opt/filebench/bin/davenet> failed
pathname does not exist
unable to create link to </usr/lib/isaexec>
/opt/filebench/bin/fastsu <linked pathname>
ERROR: attribute verification of </opt/filebench/bin/fastsu> failed
pathname does not exist
unable to create link to </usr/lib/isaexec>
/opt/filebench/bin/gnuplot <linked pathname>
ERROR: attribute verification of </opt/filebench/bin/gnuplot> failed
pathname does not exist
unable to create link to </usr/lib/isaexec>
/opt/filebench/bin/go_filebench <linked pathname>
ERROR: attribute verification of </opt/filebench/bin/go_filebench> failed
pathname does not exist
unable to create link to </usr/lib/isaexec>
/opt/filebench/bin/statit <linked pathname>
ERROR: attribute verification of </opt/filebench/bin/statit> failed
pathname does not exist
unable to create link to </usr/lib/isaexec>

Installation of <filebench> partially failed.

pkginfo -l filebench

PKGINST: filebench
NAME: FileBench
CATEGORY: application
ARCH: i386
VERSION: 1.3.0
BASEDIR: /opt
VENDOR: filebench.org
DESC: FileBench
PSTAMP: 1.3.0
INSTDATE: May 05 2008 14:14
EMAIL: [email protected]
STATUS: partially installed
FILES: 259 installed pathnames
5 partially installed pathnames
5 linked files
28 directories
62 executables
1 setuid/setgid executables
21886 blocks used (approx)

"ARCH: i386" should be "ARCH: sparc"

Reported by: spackard

error handling is screwed up

There is no good error handling ideology in Filebench . If an error occurs, than consequences are not predictable. Need to revise all error handling code.

Reported by: vass-vass

make fails on OpenIndiana 148

Failure during make on OpenIndiana 148 (like OpenSolaris 148). I'm not sure how to proceed.

Output (sanitized):

make

make all-recursive
make[1]: Entering directory /home/username/filebench-1.4.9' Making all in workloads make[2]: Entering directory /home/username/filebench-1.4.9/workloads'
make[2]: Nothing to be done for all'. make[2]: Leaving directory /home/username/filebench-1.4.9/workloads'
make[2]: Entering directory /home/username/filebench-1.4.9' gcc -D_REENTRANT -DYYDEBUG -DYY_NO_INPUT -DFILEBENCHDIR=\"/usr/local/share/filebench\" -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -I. -Wall -Wno-unknown-pragmas -g -O2 -MT fb_random.o -MD -MP -MF .deps/fb_random.Tpo -c -o fb_random.o fb_random.c fb_random.c:30:18: math.h: No such file or directory fb_random.c: In function rand_uniform_get':
fb_random.c:181: warning: implicit declaration of function round' make[2]: *** [fb_random.o] Error 1 make[2]: Leaving directory /home/username/filebench-1.4.9'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/username/filebench-1.4.9'
make: *** [all] Error 2

Output from ./configure is attached, no apparent errors there that I can see.

Reported by: thermionic

workloads are duplicated

Currently in the build infrastructure, all of the workloads are listed in the workloads directory as well as in the workloads/build directory. We obviously shouldn't need both.

Someone who understands the automake files should fix this. Its most annoying as when you add a new workload, you have to make sure you add it twice.

Reported by: sfjuggernaut

filebench hanging in sempost/semblock flowops

A filebench workload based on oltp.f was seen to deadlock on some runs, with most shadow threads in flowoplib_sempost(), most dbwr threads and the lgwr thread in flowoplib_semblock(), and a few of the shadow and dbwr threads in fileset_pick(). All of the dbwr and lgwr aio threads were in _aio_idle(). The hang was observed repeatedly, on roughly 1 out of every 50 runs. When it did occur, it always happened within a few seconds of the "Running..." message and the start of I/O operations.

Examining all of the processes with dbx during a hang, I see that they all use the same sys_semid, but the sbuf[0].sem_num and sbuf[1].sem_num used by the shadow threads that are in flowoplib_sempost() do not match any of the sem_nums used the dbwr or lgwr threads that are in flowoplib_semblock(). This suggest that we may either get into a state where the shadow threads and dbwr threads disagree on the correct semaphores to use, or that the shadows are posting to semaphores associated dbwr threads stuck in fileset_pick(), and vice versa.

filebench-1.4.8 was compiled on Solaris 10 with SunStudio 12, and executed on a 128 strand T5240.

The attached myoltp.f is the workload definition used, including 64 shadow, 20 dbwr, and one lgwr process. go_filebench was run with the following input:

load my-oltp
set $dir=/mydir1/filebench
set $logdir=/mydir2/filebench
set $filesize=17179869184
set $logfilesize=17179869184
set $iosize=4096
set $dbwriosize=8192
set $logiosize=12288
run 6000

Reported by: dlutz1

PROCESS_SHARED and /proc/stat warnings on FreeBSD

When one runs Filebench on FreeBSD, he sees ugly warnings:

######################################################################

filebench workload file

######################################################################
load singlestreamread
set $dir=/fbtest
create fileset
system "sync"
system "if [ -f /proc/sys/vm/drop_caches ]; then echo 3 > /proc/sys/vm/drop_caches; fi"
create process
stats clear
sleep 10
stats snap
sleep 10
stats snap
sleep 10
stats snap
sleep 10
stats snap
sleep 10
stats snap
sleep 10
stats snap
shutdown process
quit

######################################################################

starting filebench singlestreamread (1)

######################################################################
4687: 0.001: cannot set mutex attr PROCESS_SHARED on this platform on line 1
4687: 0.001: cannot set mutex attr PROCESS_SHARED on this platform on line 1
4687: 0.001: cannot set mutex attr PROCESS_SHARED on this platform on line 1
4687: 0.001: cannot set mutex attr PROCESS_SHARED on this platform on line 1
Filebench Version 1.4.9
4687: 0.001: Allocated 125MB of shared memory
4687: 0.001: cannot set cond attr PROCESS_SHARED on line 1
4687: 0.001: cannot set rwlock attr PROCESS_SHARED on line 1
4687: 0.012: No /proc/stat or libkstat,so no correct source of per-system CPU usage! on line 1
4687: 0.021: Single Stream Read Version 3.0 personality successfully loaded
4687: 0.021: Creating/pre-allocating files and filesets
4687: 0.027: File largefile1: 5120.000MB
4687: 0.069: Removed any existing file largefile1 in 1 seconds
4687: 0.069: making tree for filset /fbtest/largefile1
4687: 0.093: Creating file largefile1...
4687: 250.643: Preallocated 1 of 1 of file largefile1 in 251 seconds
4687: 250.787: waiting for fileset pre-allocation to finish
4687: 250.815: Running 'sync'
4687: 252.256: Running 'if [ -f /proc/sys/vm/drop_caches ]; then echo 3 > /proc/sys/vm/drop_caches; fi'
4687: 252.707: Starting 1 seqread instances
5768: 253.589: Starting 1 seqread threads
4687: 254.689: No /proc/stat or libkstat,so no correct source of per-system CPU usage! on line 54
4687: 254.704: Running...
4687: 264.895: Run took 10 seconds...
4687: 264.937: No /proc/stat or libkstat,so no correct source of per-system CPU usage! on line 56
4687: 264.937: Per-Operation Breakdown
seqread 110ops 11ops/s 10.7mb/s 87.5ms/op 0us/op-cpu [18ms - 404ms]
4687: 264.937: IO Summary: 110 ops, 10.750 ops/s, (11/0 r/w), 10.7mb/s, 0us cpu/op, 87.5ms latency
4687: 264.937: Running...
...

Reported by: vass-vass

Benchpoint PERL Script Should be Depricated

Two PERL scripts are installed, bin/filebench and bin/benchpoint. The benchpoint script incorperates problems that do not exist in bin/filebench, however there is a very small amount of difference between the two.

I'd propose one of the following:

  1. Dump benchpoint completely.
  2. Replace "benchpoint" (benchpoint/bin/benchpoint in the source) with the existing filebench PERL Script (bin/filebench in the source).

The latter is the better solution. Renaming the C binary "filebench" to "go_filebench" is confusing, as is two files in bin/ both named "filebench" to the new user.

I recommend fixing benchmark and then renaming "go_filebench" to just plain "filebench" again.

Reported by: technikolor

core dump when mmap fails

$ /opt/filebench/bin/filebench
Segmentation fault (core dumped)

$ gdb /opt/filebench/bin/filebench core
GNU gdb 6.4-debian
. . .
(gdb) where
#0  0x37dd84aa in memset () from
/lib/tls/i686/cmov/libc.so.6
#1  0x0807b01e in ?? ()
#2  0x080522da in ipc_init () at ipc.c:264
#3  0x08058bc1 in main (argc=1, argv=0x3f8fdcf4) at
parser_gram.y:1140

More details at
http://mgerdts.blogspot.com/2006/02/hunting-bugs-in-filebench.html

Patch attached. Tested on Linux 2.6.15-15 (Ubuntu
Dapper) for the enomem condition.

Reported by: gerdts

Usage " (whatever)" causes parser's error

if you add

usage " (qkreq)"

to the .f file, that's what you'll see

vass@Spear:/filebenchqa/auto-test/filebench-1.4.9$ filebench
Filebench Version 1.4.9
IMPORTANT: Virtual address space randomization is enabled on this machine!
It is highly recommended to disable randomization to provide stable Filebench runs.
Echo 0 to /proc/sys/kernel/randomize_va_space file to disable the randomization.
WARNING: Could not open /proc/sys/kernel/shmmax file!
It means that you probably ran Filebench not as a root. Filebench will not increase shared
region limits in this case, which can lead to the failures on certain workloads.
5034: 0.000: Allocated 126MB of shared memory
filebench> load varmail
5034: 2.479: Varmail Version 3.0 personality successfully loaded
5034: 2.479: Usage: set $dir=<dir>
5034: 2.479: set $meanfilesize=<size> defaults to 16384
5034: 2.479: set $nfiles=<value> defaults to 1000
5034: 2.479: set $nthreads=<value> defaults to 16
5034: 2.479: set $meanappendsize=<value> defaults to 16384
5034: 2.479: set $iosize=<size> defaults to 1048576
5034: 2.479: set $meandirwidth=<size> defaults to 1000000
5034: 2.479: run runtime (e.g. run 60)
5034: 2.479: (directory depth defaults to 1 as in postmark
5034: 2.479: set $meandirwidth lower to increase depth beyond 1 if desired)
5034: 2.479: Cannot find environment variable (qkreq) on line 69
5034: 2.479: (qkreq)
filebench> quit
vass@Spear:
/filebenchqa/auto-test/filebench-1.4.9$

Reported by: vass-vass

Xanadu is not working

In the 'filebench' perl script (typically installed at /opt/filebench/bin/filebench), i set USE_XANADU to 1.

And in my profile i had:
DEFAULTS {
runtime = 20;
dir = /tmp;
stats = /tmp;
filesystem = tmpfs;
description = "seqread tmpfs";
}

CONFIG seqread1m {
function = generic_xanadu;
personality = multistreamread;
filesize = 40m;
iosize = 1m;
nthreads = 1;
}

Note, function is "generic_xanadu" - not "generic".

After a run, i get lots of errors and no nice pretty graphs:
102346: 24.303: Stats dump to file 'stats.tmpfs.out'
102346: 24.303: in statsdump stats.tmpfs.out
102346: 24.303: Running '/tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/stats2.sh'
Killing statistics gathering: lockstat
Killing statistics gathering: iostat
Killing statistics gathering: vmstat
Killing statistics gathering: lockstat
Killing statistics gathering: mpstat
Killing statistics gathering: statit
Killing statistics gathering: cpustat
Killing statistics gathering: davenet
Killing statistics gathering: netstat
Killing statistics gathering: kstat
/opt/filebench/scripts/collect_cpustat[100]: 102392 Terminated
102346: 24.761: Stats dump to file 'stats.tmpfs.xml'
102346: 24.762: Running '/tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/stats3.pl'
102346: 24.781: Running '/tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/stats4.sh'
/opt/filebench/scripts/collect_cpustat[102]: kill: bad argument count
perl /opt/filebench/xanadu/scripts/import.pl -b /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml generic_xanadu-/tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m
src = /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m
dst = /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml

  1. davenet.tmpfs.out => netsum2xml.pl => davenet.tmpfs.out.xml
  2. iostat.tmpfs.out => iostat2xml.pl => iostat.tmpfs.out.xml
  3. mpstat.tmpfs.out => mpstat2xml.pl => mpstat.tmpfs.out.xml
  4. statit.tmpfs.out => statit2xml.pl => statit.tmpfs.out.xml
  5. vmstat.tmpfs.out => vmstat2xml.pl => vmstat.tmpfs.out.xml
    /opt/filebench/scripts/kill_stats[14]: 102451 Terminated
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/collect_kstat[25]: 102485 Terminated
    /opt/filebench/scripts/kill_stats[14]: 102464 Terminated
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    Done vmstat2xml.pl on vmstat.tmpfs.out => exit value 0
    Done mpstat2xml.pl on mpstat.tmpfs.out => exit value 0
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    /opt/filebench/scripts/kill_stats[17]: kill: bad argument count
    Done iostat2xml.pl on iostat.tmpfs.out => exit value 0
    Done statit2xml.pl on statit.tmpfs.out => exit value 0
    Done netsum2xml.pl on davenet.tmpfs.out => exit value 0
    DONE IMPORT
    java -mx256m -classpath ../WEB-INF/classes:../WEB-INF/lib/servlet-api.jar:../WEB-INF/lib/jaxb-rt-1.0-ea.jar:../WEB-INF/lib/jfreechart.jar:../WEB-INF/lib/jcommon.jar -Dxanadu.url=http://romulus.sfbay.sun.com/xanadu/xc?action=view&file= -Dxanadu.basedir=.. -Djava.awt.headless=true org.xanadu.cmd.ExportFromXML /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/html
    Parsing /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml/iostat.tmpfs.out.xml.gz
    Parsing /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml/statit.tmpfs.out.xml.gz
    Parsing /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml/stats.tmpfs.xml
    Exception in thread "Thread-0" java.lang.VerifyError: (class: javax/xml/marshal/StreamScanner, method: fail signature: (ILjava/lang/String;)V) Incompatible object argument for function call
    at javax.xml.marshal.XMLScanner.open(XMLScanner.java:138)
    at javax.xml.bind.Dispatcher.unmarshal(Dispatcher.java:427)
    at org.xanadu.xml.Xml2Html.unmarshal(Xml2Html.java:40)
    at org.xanadu.cmd.ExportThread.run(ExportThread.java:28)
    at java.lang.Thread.run(Thread.java:619)
    Parsing /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml/davenet.tmpfs.out.xml.gz
    Exception in thread "Thread-1" Parsing /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml/mpstat.tmpfs.out.xml.gzjava.lang.VerifyError: (class: javax/xml/marshal/StreamScanner, method: fail signature: (ILjava/lang/String;)V) Incompatible object argument for function call
    at javax.xml.marshal.XMLScanner.open(XMLScanner.java:138)

at javax.xml.bind.Dispatcher.unmarshal(Dispatcher.java:427)
at org.xanadu.xml.Xml2Html.unmarshal(Xml2Html.java:40)
at org.xanadu.cmd.ExportThread.run(ExportThread.java:28)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-3" java.lang.VerifyError: (class: javax/xml/marshal/StreamScanner, method: fail signature: (ILjava/lang/String;)V) Incompatible object argument for function call
at javax.xml.marshal.XMLScanner.open(XMLScanner.java:138)
at javax.xml.bind.Dispatcher.unmarshal(Dispatcher.java:427)
at org.xanadu.xml.Xml2Html.unmarshal(Xml2Html.java:40)
at org.xanadu.cmd.ExportThread.run(ExportThread.java:28)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-4" java.lang.VerifyError: (class: javax/xml/marshal/StreamScanner, method: fail signature: (ILjava/lang/String;)V) Incompatible object argument for function call
at javax.xml.marshal.XMLScanner.open(XMLScanner.java:138)
at javax.xml.bind.Dispatcher.unmarshal(Dispatcher.java:427)
at org.xanadu.xml.Xml2Html.unmarshal(Xml2Html.java:40)
at org.xanadu.cmd.ExportThread.run(ExportThread.java:28)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-2" java.lang.VerifyError: (class: javax/xml/marshal/StreamScanner, method: fail signature: (ILjava/lang/String;)V) Incompatible object argument for function call
at javax.xml.marshal.XMLScanner.open(XMLScanner.java:138)
at javax.xml.bind.Dispatcher.unmarshal(Dispatcher.java:427)
at org.xanadu.xml.Xml2Html.unmarshal(Xml2Html.java:40)
at org.xanadu.cmd.ExportThread.run(ExportThread.java:28)
at java.lang.Thread.run(Thread.java:619)
Parsing /tmp/heavy-tmpfs-xan-May_29_2008-13h_07m_34s/seqread1m/xml/vmstat.tmpfs.out.xml.gz
Exception in thread "Thread-5" java.lang.VerifyError: (class: javax/xml/marshal/StreamScanner, method: fail signature: (ILjava/lang/String;)V) Incompatible object argument for function call
at javax.xml.marshal.XMLScanner.open(XMLScanner.java:138)
at javax.xml.bind.Dispatcher.unmarshal(Dispatcher.java:427)
at org.xanadu.xml.Xml2Html.unmarshal(Xml2Html.java:40)
at org.xanadu.cmd.ExportThread.run(ExportThread.java:28)
at java.lang.Thread.run(Thread.java:619)
102346: 35.590: Shutting down processes

Reported by: sfjuggernaut

Compile errors on Solaris SPARC SunOS 5.10 Generic

When compiling 1.4.9 on Sparc, I am getting an "Unsupported arch" error.

It looks like the file ioprio.h will need some additions. Unfortunately, it isn't clear to me what the numbers represent in the following statements. What do the numbers __NR_ioprio_get and set mean?

#include "filebench.h"
#include "ioprio.h"

#if defined(i386)
#define __NR_ioprio_set 289
#define __NR_ioprio_get 290
#elif defined(ppc)
#define __NR_ioprio_set 273
#define __NR_ioprio_get 274
#elif defined(x86_64)
#define __NR_ioprio_set 251
#define __NR_ioprio_get 252
#elif defined(ia64)
#define __NR_ioprio_set 1274
#define __NR_ioprio_get 1275
#else
#error "Unsupported arch"
#endif

Reported by: gregkranz

Set variables from the command line

That would be nice to be able to set variable values through the command line. Something like that:

filbench -f varmail.f -s dir=/tmp -s iosize=1m

Reported by: vass-vass

version mismatches

filebench-1.1.0.tar.bz2 expands to filebench-1.0.1/ directory. The NEWS file indicates the release is 1.0.1.
The README file indicates the release is 1.0.0.

Reported by: spackard

INSTALL document is wrong

The INSTALLATION document is wrong, it says :
./configure --prefix=/opt
but it should be :
./configure --prefix=/opt/filebench

Reported by: fbacchella

Benchpoint Argument Strange and Confusing

Benchpoint takes, as an argument, the location of the profile you with to use. The default profiles are stored in /opt/filebench/config, which is counter-intuitive. Furthermore if you supply the full file name and path it is stripped without your knowing it:

Make sure arguments are okay

if(@argv != 1) {
print "Usage: benchpoint <profile name>\n";
exit(1);
}

$PROFILENAME = $ARGV[0];
$PROFILE = $PROFILENAME;
$PROFILE =~ s/.*/(.+)$/$1/;

parse_profile("$PROFILENAME.prof");

The full path is never specified.... therefore, you must execute benchpoint in the config directory itself.

This is bazaar and confusing.

Reported by: technikolor

Only one last defined process spans

Only one last defined process spans even if there are multiple processes defined in .f file. When running attached file, that's what one sees:

root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8/workloads# go_filebench -f /tmp/singlestreamread.f
Filebench Version 1.4.8.fsl.0.9
4533: 0.000: Allocated 170MB of shared memory
4533: 0.001: Single Stream Read Version 2.0 personality successfully loaded
4533: 0.001: Creating/pre-allocating files and filesets
4533: 0.001: File largefile1: 5120.000MB
4533: 0.003: Removed any existing file largefile1 in 1 seconds
4533: 0.003: making tree for filset /tmp/largefile1
4533: 0.003: Creating file largefile1...
^C 4533: 5.047: Aborting...
root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8/workloads# vim /tmp/singlestreamread.f
root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8/workloads#
root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8/workloads# go_filebench -f /tmp/singlestreamread.f
Filebench Version 1.4.8.fsl.0.9
4538: 0.000: Allocated 170MB of shared memory
4538: 0.001: Single Stream Read Version 2.0 personality successfully loaded
4538: 0.001: Creating/pre-allocating files and filesets
4538: 0.001: File largefile1: 1024.000MB
4538: 0.001: Re-using file largefile1.
4538: 0.001: Creating file largefile1...
4538: 0.213: Preallocated 1 of 1 of file largefile1 in 1 seconds
4538: 0.213: waiting for fileset pre-allocation to finish
4540: 0.213: Starting 1 anotherseqread instances
4541: 0.214: Starting 1 anotherseqread threads
4538: 1.214: Running...
4538: 61.225: Run took 60 seconds...
4538: 61.226: Per-Operation Breakdown
limit 0ops 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu [0ms - 0ms]
anotherseqread 210923ops 3515ops/s 3511.4mb/s 0.2ms/op 260us/op-cpu [0ms - 0ms]
limit 0ops 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu [18446744073709ms - 0ms]
seqread 0ops 0ops/s 0.0mb/s 0.0ms/op 0us/op-cpu [18446744073709ms - 0ms]
4538: 61.226: IO Summary: 210923 ops, 3514.829 ops/s, (3515/0 r/w), 3511.4mb/s, 308us cpu/op, 0.2ms latency
4538: 61.226: Shutting down processes

Only anotherseqread processe is started!

Reported by: vass-vass

.bz2 incomplete

If I expand the .bz2 and cd to filebench/, typing make leaves me with:
Makefile:27: ../Makefile.cmd: No such file or directory
make: *** No rule to make target `../Makefile.cmd'. Stop.

Reported by: spackard

no true amd64 binary

The binary under amd64 is actually a 32bit binary:
heavy# file /opt/filebench/bin/amd64/go_filebench
/opt/filebench/bin/amd64/go_filebench: ELF 32-bit LSB executable 80386 Version 1 [FPU], dynamically linked, not stripped
heavy#

The build infrastructure needs to be updated.

Reported by: sfjuggernaut

semaphose usage in oltp personality is sub-optimal

While using filebench oltp personality as atool to size an OLTP workload resource requirement we are hitting hard a lock contention if ipc_get sugesting calls to semget prior to every call to semop. As processor resources are added to the system the %sys skyrock all to way to 75% of the total cpu cycles during our measurment period.

Some lockstat data below:

Profiling interrupt: 654863 events in 60.248 seconds\(10869 events/sec\)

Count genr cuml rcnt     nsec Hottest CPU+PIL       Caller                  
-------------------------------------------------------------------------------
516190  79% ---- 0.00     3969 cpu[34]               
syscall_trap            
514671  79% ---- 0.00     3973 cpu[34]               
dtrace_systrace_syscall 
483562  74% ---- 0.00     3407 cpu[34]               
semget                  
483241  74% ---- 0.00     3407 cpu[34]               
ipc_get                 
482985  74% ---- 0.00     3433 cpu[41]               
mutex_vector_enter      
132846  20% ---- 0.00     2663 cpu[33]               
cpu_smt_pause           
125921  19% ---- 0.00     3696 cpu[40]               
(usermode)              
17321   3% ---- 0.00    36312 cpu[226]              
dtrace_probe            
9225   1% ---- 0.00     4322 cpu[35]               
lock_set_spl_spin       
9220   1% ---- 0.00     3706 cpu[242]+11           
semop                   

Adaptive mutex spin: 3917838 events in 60.198 seconds
(65083 events/sec)

-------------------------------------------------------------------------------
Count indv cuml rcnt     spin Lock                  
Caller                  
3013365  99%  99% 0.00      334 0x6003a1f9160         
ipc_get+0x20            

spin ------ Time Distribution ------ count    
Stack                   
2 |                               16254    
semget+0x54             
4 |                               37912    
dtrace_systrace_syscall+0xa8
8 |                               54764    
syscall_trap+0xac       
16 |                               90162     
32 |@                              166419    
64 |@@                             296340    
128 |@@@@                           486034    
256 |@@@@@@                         663563    
512 |@@@@@@                         668859    
1024 |@@@                            387794    
2048 |@                              107820    
4096 |                               25183     
8192 |                               8956      
16384 |                               2947      
32768 |                               358       
-------------------------------------------------------------------------------

Filebech should cache semids at the start of teh run period and used them instead of calling semget prior to every semop. Relying on the OS to do the caching is not appropriate.

Reported by: *anonymous

Filebench crashes when using directio

When using directio in a filebench script, e.g. flowop read name=readfile,filesetname=bigfile1,random,iosize=256k,directio, Filebench crashes with this message:

*** glibc detected *** filereader: free(): invalid next size (normal): 0x00007ff
fe8a008d0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3a0ee76d63]
/lib64/libc.so.6(fclose+0x155)[0x3a0ee65da5]
filereader[0x408d97]
filereader[0x40cc22]
filereader[0x409033]
/lib64/libpthread.so.0[0x3a0f206ccb]
/lib64/libc.so.6(clone+0x6d)[0x3a0eee0c2d]

Filebench was runing on Fedora 14, 2.6.35 kernel (running on a virtual machine on ESX server 4.1). When I tried the same script on RHEL, 2.6.34.1 kernel (non-VM setup), Filebench ran successfully.

Filebench version 1.4.8

Reported by: *anonymous

make clean does not remove parser files

When "make clean" is run, the following files should be
removed:

parser_lex.c
parser_gram.h
parser_gram.c

The attached patch accomplishes this. Automake should
be run after applying this patch to update Makefile.in

Reported by: gerdts

useless _syscall0

What's the purpose of this line in flowop.c :
filebench/flowop.c:_syscall0(pid_t,gettid)

gettid is never used and syscallX is deprecated anyway.

Reported by: fbacchella

Compiling on Fedora11

I tryed to compile filebench-1.4.8 on Fedora11. I imedialy had error related to missing file libtecla.h
So, I compiled and installed libtecla-1.6.1 and things went better.

But... when compiling file filebench/multi_client_sync.c there are many portability issues: file inet/ip.h is requested (on Linux it's netinet/ip.h) and call to gethostbyname_r (quand other gethostby*_r) are not conform to the prototypes.

Is there a patch to support filebench on Linux ? I guess this is a pretty good product and I'd really liked to run it on Fedora.

Reported by: denielphilippe

poor sequential fb perf

Have you ever tried comparing the performance of fb vs. iozone or dd?

We aren't too sure about random workloads right now, but for both seq read and write, performance is at least 30% below iozone, and even 70% is some cases when the iosize is very small. Do you have any insights in this manner, as at this point we cannot use fb until this is resolved.

Here is our sequential write .f file, is there a problem with it?

#define file name=bigfile1,path=/mnt/boar7,size=1024m,prealloc,reuse,cached=false
define file name=bigfile1,path=/gpfs/gpfsA,size=1024m,prealloc,reuse,cached=false

define process name=filewriter,instances=1
{
thread name=filewriterthread,memsize=10m,instances=1
{
flowop write name=writefile,filesetname=bigfile1,iosize=4k,iters=262144
flowop fsync name=fsync
flowop finishonbytes name=finish,value=1
}
}

create file
run 6000

Reported by: vass-vass

oltp workload hangs

root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8# go_filebench
Filebench Version 1.4.8.fsl.0.9
IMPORTANT: Virtual address space randomization is enabled on this machine!
It is highly recommended to disable randomization to provide stable Filebench runs.
Echo 0 to /proc/sys/kernel/randomize_va_space file to disable the randomization.
3285: 0.000: Allocated 170MB of shared memory
filebench> load oltp
3285: 1.987: Eventgen rate taken from variable
3285: 1.987: OLTP Version 2.3 personality successfully loaded
3285: 1.987: Usage: set $dir=<dir> defaults to /tmp
3285: 1.987:
3285: 1.987: set $eventrate=<value> defaults to 0
3285: 1.987:
3285: 1.987: set $filesize=<size> defaults to 10485760, n.b. there are ten files of this size
3285: 1.987:
3285: 1.987: set $logfilesize=<size> defaults to 10485760, n.b. there is one file of this size
3285: 1.987:
3285: 1.988: set $iosize=<value> defaults to 2048, typically 2k or 8k
3285: 1.988:
3285: 1.988: set $cached=<bool> defaults to 0
3285: 1.988:
3285: 1.988: set $memperthread=<value> defaults to 1048576
3285: 1.988:
3285: 1.988: set $directio=<value> defaults to 0
3285: 1.988:
3285: 1.988: run runtime (e.g. run 60)
3285: 1.988:
3285: 1.988: Note - total filesize should be at least 2x physical memory size for conforming test)
3285: 1.988: i.e. if physmem = 4G, set filesize to 4G * 2 / 10, or 800m
3285: 1.988:
3285: 1.988: Note - this workload needs at least 512MB of of memory
3285: 1.988:
filebench> run 60
3285: 9.588: Creating/pre-allocating files and filesets
3285: 9.588: Fileset logfile: 1 files, 0 leafdirs, avg dir width = 1024, avg dir depth = 0.0, 10.000MB
3285: 9.647: Removed any existing fileset logfile in 1 seconds
3285: 9.647: making tree for filset /tmp/logfile
3285: 9.650: Creating fileset logfile...
3285: 9.656: Preallocated 1 of 1 of fileset logfile in 1 seconds
3285: 9.662: Fileset datafiles: 10 files, 0 leafdirs, avg dir width = 1024, avg dir depth = 0.3, 100.000MB
3285: 9.664: Removed any existing fileset datafiles in 1 seconds
3285: 9.664: making tree for filset /tmp/datafiles
3285: 9.664: Creating fileset datafiles...
3285: 9.722: Preallocated 10 of 10 of fileset datafiles in 1 seconds
3285: 9.722: waiting for fileset pre-allocation to finish
3292: 9.722: Starting 200 shadow instances
3296: 9.724: Starting 1 shadow threads
3293: 9.724: Starting 1 shadow threads
3312: 9.726: Starting 1 shadow threads
3306: 9.726: Starting 1 shadow threads
3310: 9.726: Starting 1 shadow threads
3304: 9.726: Starting 1 shadow threads
3295: 9.727: Starting 1 shadow threads
3300: 9.727: Starting 1 shadow threads
3316: 9.727: Starting 1 shadow threads
3321: 9.728: Starting 1 shadow threads
3303: 9.728: Starting 1 shadow threads
3307: 9.729: Starting 1 shadow threads
3311: 9.729: Starting 1 shadow threads
3305: 9.730: Starting 1 shadow threads
3309: 9.730: Starting 1 shadow threads
3302: 9.730: Starting 1 shadow threads
3315: 9.730: Starting 1 shadow threads
3301: 9.730: Starting 1 shadow threads
3318: 9.731: Starting 1 shadow threads
3322: 9.731: Starting 1 shadow threads
3325: 9.732: Starting 1 shadow threads
3320: 9.732: Starting 1 shadow threads
3330: 9.733: Starting 1 shadow threads
3329: 9.733: Starting 1 shadow threads
3297: 9.733: Starting 1 shadow threads
3332: 9.733: Starting 1 shadow threads
3298: 9.733: Starting 1 shadow threads
3337: 9.733: Starting 1 shadow threads
3336: 9.734: Starting 1 shadow threads
3324: 9.734: Starting 1 shadow threads
3327: 9.734: Starting 1 shadow threads
3342: 9.734: Starting 1 shadow threads
3326: 9.734: Starting 1 shadow threads
3341: 9.734: Starting 1 shadow threads
3345: 9.734: Starting 1 shadow threads
3334: 9.734: Starting 1 shadow threads
3340: 9.735: Starting 1 shadow threads
3331: 9.735: Starting 1 shadow threads
3346: 9.735: Starting 1 shadow threads
3308: 9.736: Starting 1 shadow threads
3357: 9.736: Starting 1 shadow threads
3351: 9.736: Starting 1 shadow threads
3350: 9.737: Starting 1 shadow threads
3370: 9.737: Starting 1 shadow threads
3372: 9.737: Starting 1 shadow threads
3366: 9.737: Starting 1 shadow threads
3376: 9.738: Starting 1 shadow threads
3356: 9.738: Starting 1 shadow threads
3362: 9.738: Starting 1 shadow threads
3367: 9.738: Starting 1 shadow threads
3371: 9.738: Starting 1 shadow threads
3373: 9.739: Starting 1 shadow threads
3294: 9.739: Starting 1 shadow threads
3413: 9.740: Starting 1 shadow threads
3463: 9.743: Starting 1 shadow threads
3454: 9.743: Starting 1 shadow threads
3459: 9.743: Starting 1 shadow threads
3448: 9.744: Starting 1 shadow threads
3466: 9.744: Starting 1 shadow threads
3441: 9.744: Starting 1 shadow threads
3435: 9.745: Starting 1 shadow threads
3469: 9.745: Starting 1 shadow threads
3431: 9.745: Starting 1 shadow threads
3427: 9.746: Starting 1 shadow threads
3473: 9.747: Starting 1 shadow threads
3423: 9.748: Starting 1 shadow threads
3477: 9.748: Starting 1 shadow threads
3299: 9.748: Starting 1 shadow threads
3363: 9.748: Starting 1 shadow threads
3313: 9.749: Starting 1 shadow threads
3364: 9.749: Starting 1 shadow threads
3349: 9.749: Starting 1 shadow threads
3374: 9.749: Starting 1 shadow threads
3368: 9.749: Starting 1 shadow threads
3359: 9.749: Starting 1 shadow threads
3338: 9.749: Starting 1 shadow threads
3426: 9.749: Starting 1 shadow threads
3422: 9.750: Starting 1 shadow threads
3353: 9.750: Starting 1 shadow threads
3333: 9.750: Starting 1 shadow threads
3343: 9.750: Starting 1 shadow threads
3347: 9.750: Starting 1 shadow threads
3319: 9.750: Starting 1 shadow threads
3323: 9.750: Starting 1 shadow threads
3328: 9.750: Starting 1 shadow threads
3377: 9.751: Starting 1 shadow threads
3419: 9.751: Starting 1 shadow threads
3439: 9.751: Starting 1 shadow threads
3432: 9.752: Starting 1 shadow threads
3425: 9.752: Starting 1 shadow threads
3478: 9.752: Starting 1 shadow threads
3437: 9.752: Starting 1 shadow threads
3420: 9.752: Starting 1 shadow threads
3482: 9.753: Starting 1 shadow threads
3416: 9.753: Starting 1 shadow threads
3545: 9.755: Starting 1 shadow threads
3541: 9.755: Starting 1 shadow threads
3536: 9.756: Starting 1 shadow threads
3529: 9.756: Starting 1 shadow threads
3524: 9.756: Starting 1 shadow threads
3519: 9.757: Starting 1 shadow threads
3540: 9.757: Starting 1 shadow threads
3544: 9.757: Starting 1 shadow threads
3515: 9.757: Starting 1 shadow threads
3550: 9.757: Starting 1 shadow threads
3535: 9.758: Starting 1 shadow threads
3506: 9.758: Starting 1 shadow threads
3501: 9.758: Starting 1 shadow threads
3510: 9.758: Starting 1 shadow threads
3530: 9.758: Starting 1 shadow threads
3497: 9.759: Starting 1 shadow threads
3525: 9.759: Starting 1 shadow threads
3521: 9.759: Starting 1 shadow threads
3517: 9.759: Starting 1 shadow threads
3415: 9.760: Starting 1 shadow threads
3514: 9.760: Starting 1 shadow threads
3492: 9.760: Starting 1 shadow threads
3483: 9.760: Starting 1 shadow threads
3487: 9.760: Starting 1 shadow threads
3509: 9.761: Starting 1 shadow threads
3504: 9.761: Starting 1 shadow threads
3476: 9.761: Starting 1 shadow threads
3500: 9.761: Starting 1 shadow threads
3472: 9.761: Starting 1 shadow threads
3467: 9.762: Starting 1 shadow threads
3488: 9.762: Starting 1 shadow threads
3462: 9.762: Starting 1 shadow threads
3496: 9.762: Starting 1 shadow threads
3493: 9.762: Starting 1 shadow threads
3484: 9.763: Starting 1 shadow threads
3479: 9.763: Starting 1 shadow threads
3471: 9.764: Starting 1 shadow threads
3522: 9.764: Starting 1 shadow threads
3520: 9.764: Starting 1 shadow threads
3526: 9.764: Starting 1 shadow threads
3516: 9.765: Starting 1 shadow threads
3498: 9.765: Starting 1 shadow threads
3502: 9.765: Starting 1 shadow threads
3513: 9.765: Starting 1 shadow threads
3457: 9.765: Starting 1 shadow threads
3461: 9.765: Starting 1 shadow threads
3505: 9.766: Starting 1 shadow threads
3452: 9.766: Starting 1 shadow threads
3511: 9.767: Starting 1 shadow threads
3533: 9.768: Starting 1 shadow threads
3528: 9.768: Starting 1 shadow threads
3495: 9.768: Starting 1 shadow threads
3539: 9.768: Starting 1 shadow threads
3339: 9.768: Starting 1 shadow threads
3458: 9.768: Starting 1 shadow threads
3375: 9.769: Starting 1 shadow threads
3335: 9.770: Starting 1 shadow threads
3507: 9.770: Starting 1 shadow threads
3494: 9.771: Starting 1 shadow threads
3490: 9.771: Starting 1 shadow threads
3481: 9.772: Starting 1 shadow threads
3527: 9.772: Starting 1 shadow threads
3508: 9.772: Starting 1 shadow threads
3445: 9.772: Starting 1 shadow threads
3503: 9.772: Starting 1 shadow threads
3549: 9.772: Starting 1 shadow threads
3489: 9.773: Starting 1 shadow threads
3485: 9.773: Starting 1 shadow threads
3546: 9.773: Starting 1 shadow threads
3465: 9.773: Starting 1 shadow threads
3475: 9.773: Starting 1 shadow threads
3543: 9.773: Starting 1 shadow threads
3486: 9.774: Starting 1 shadow threads
3491: 9.774: Starting 1 shadow threads
3418: 9.774: Starting 1 shadow threads
3470: 9.783: Starting 1 shadow threads
3440: 9.783: Starting 1 shadow threads
3421: 9.783: Starting 1 shadow threads
3464: 9.783: Starting 1 shadow threads
3434: 9.784: Starting 1 shadow threads
3424: 9.784: Starting 1 shadow threads
3354: 9.784: Starting 1 shadow threads
3344: 9.784: Starting 1 shadow threads
3499: 9.784: Starting 1 shadow threads
3512: 9.784: Starting 1 shadow threads
3523: 9.785: Starting 1 shadow threads
3538: 9.785: Starting 1 shadow threads
3542: 9.785: Starting 1 shadow threads
3474: 9.785: Starting 1 shadow threads
3460: 9.785: Starting 1 shadow threads
3365: 9.785: Starting 1 shadow threads
3429: 9.786: Starting 1 shadow threads
3451: 9.786: Starting 1 shadow threads
3455: 9.786: Starting 1 shadow threads
3449: 9.786: Starting 1 shadow threads
3444: 9.786: Starting 1 shadow threads
3438: 9.786: Starting 1 shadow threads
3518: 9.786: Starting 1 shadow threads
3532: 9.786: Starting 1 shadow threads
3547: 9.787: Starting 1 shadow threads
3369: 9.787: Starting 1 shadow threads
3446: 9.787: Starting 1 shadow threads
3348: 9.787: Starting 1 shadow threads
3360: 9.787: Starting 1 shadow threads
3442: 9.787: Starting 1 shadow threads
3285: 18.788: Waiting for pid 3550 thread shadow-1
3285: 19.788: Waiting for pid 3550 thread shadow-1
3285: 28.789: Waiting for pid 3549 thread shadow-1
3285: 29.789: Waiting for pid 3549 thread shadow-1
3285: 38.790: Waiting for pid 3547 thread shadow-1
3285: 39.791: Waiting for pid 3547 thread shadow-1
3285: 48.791: Waiting for pid 3546 thread shadow-1
3285: 49.792: Waiting for pid 3546 thread shadow-1
3285: 58.793: Waiting for pid 3545 thread shadow-1
3285: 59.793: Waiting for pid 3545 thread shadow-1
3285: 68.794: Waiting for pid 3544 thread shadow-1
3285: 69.794: Waiting for pid 3544 thread shadow-1
3285: 78.796: Waiting for pid 3543 thread shadow-1
3285: 79.796: Waiting for pid 3543 thread shadow-1
3285: 88.797: Waiting for pid 3542 thread shadow-1
3285: 89.798: Waiting for pid 3542 thread shadow-1
3285: 98.799: Waiting for pid 3541 thread shadow-1
3285: 99.799: Waiting for pid 3541 thread shadow-1
3285: 108.801: Waiting for pid 3540 thread shadow-1
3285: 109.801: Waiting for pid 3540 thread shadow-1
3285: 118.803: Waiting for pid 3539 thread shadow-1
3285: 119.803: Waiting for pid 3539 thread shadow-1
3285: 128.805: Waiting for pid 3538 thread shadow-1
3285: 129.805: Waiting for pid 3538 thread shadow-1
3285: 138.807: Waiting for pid 3536 thread shadow-1
3285: 139.807: Waiting for pid 3536 thread shadow-1
3285: 148.808: Waiting for pid 3535 thread shadow-1
3285: 149.808: Waiting for pid 3535 thread shadow-1
3285: 158.810: Waiting for pid 3533 thread shadow-1
3285: 159.810: Waiting for pid 3533 thread shadow-1
3285: 168.811: Waiting for pid 3532 thread shadow-1
3285: 169.811: Waiting for pid 3532 thread shadow-1
3285: 178.812: Waiting for pid 3530 thread shadow-1
3285: 179.812: Waiting for pid 3530 thread shadow-1
3285: 188.813: Waiting for pid 3529 thread shadow-1
3285: 189.814: Waiting for pid 3529 thread shadow-1
3285: 198.815: Waiting for pid 3528 thread shadow-1
3285: 199.815: Waiting for pid 3528 thread shadow-1
3285: 208.816: Waiting for pid 3527 thread shadow-1
3285: 209.816: Waiting for pid 3527 thread shadow-1
3285: 218.817: Waiting for pid 3526 thread shadow-1
3285: 219.817: Waiting for pid 3526 thread shadow-1
3285: 228.818: Waiting for pid 3525 thread shadow-1
3285: 229.818: Waiting for pid 3525 thread shadow-1
3285: 238.819: Waiting for pid 3524 thread shadow-1
3285: 239.819: Waiting for pid 3524 thread shadow-1
3285: 248.820: Waiting for pid 3523 thread shadow-1
3285: 249.820: Waiting for pid 3523 thread shadow-1
3285: 258.822: Waiting for pid 3522 thread shadow-1
3285: 259.822: Waiting for pid 3522 thread shadow-1
3285: 268.824: Waiting for pid 3521 thread shadow-1
3285: 269.824: Waiting for pid 3521 thread shadow-1
3285: 278.826: Waiting for pid 3520 thread shadow-1
3285: 279.826: Waiting for pid 3520 thread shadow-1
3285: 288.828: Waiting for pid 3519 thread shadow-1
3285: 289.828: Waiting for pid 3519 thread shadow-1
3285: 298.829: Waiting for pid 3518 thread shadow-1
3285: 299.830: Waiting for pid 3518 thread shadow-1
3285: 308.832: Waiting for pid 3517 thread shadow-1
3285: 309.832: Waiting for pid 3517 thread shadow-1
3285: 318.833: Waiting for pid 3516 thread shadow-1
3285: 319.834: Waiting for pid 3516 thread shadow-1
3285: 328.836: Waiting for pid 3515 thread shadow-1
3285: 329.836: Waiting for pid 3515 thread shadow-1
3285: 338.838: Waiting for pid 3514 thread shadow-1
3285: 339.838: Waiting for pid 3514 thread shadow-1
3285: 348.840: Waiting for pid 3513 thread shadow-1
3285: 349.840: Waiting for pid 3513 thread shadow-1
3285: 358.842: Waiting for pid 3512 thread shadow-1
3285: 359.842: Waiting for pid 3512 thread shadow-1
3285: 368.843: Waiting for pid 3511 thread shadow-1
3285: 369.844: Waiting for pid 3511 thread shadow-1
3285: 378.845: Waiting for pid 3510 thread shadow-1
3285: 379.846: Waiting for pid 3510 thread shadow-1
3285: 388.847: Waiting for pid 3509 thread shadow-1
3285: 389.847: Waiting for pid 3509 thread shadow-1
3285: 398.848: Waiting for pid 3508 thread shadow-1
3285: 399.848: Waiting for pid 3508 thread shadow-1
3285: 408.849: Waiting for pid 3507 thread shadow-1
3285: 409.849: Waiting for pid 3507 thread shadow-1
3285: 418.850: Waiting for pid 3506 thread shadow-1
3285: 419.850: Waiting for pid 3506 thread shadow-1
3285: 428.851: Waiting for pid 3505 thread shadow-1
3285: 429.852: Waiting for pid 3505 thread shadow-1
3285: 438.853: Waiting for pid 3504 thread shadow-1
3285: 439.853: Waiting for pid 3504 thread shadow-1
^C 3285: 445.862: Aborting...
Terminated
root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8#

Ctrl+C doesn't help, only killing from other console helps

root@white:/edisk-ext3/projects/dedup/in_cvs/go_filebench/go_filebench-1.4.8# uname -a
Linux white 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011 x86_64 GNU/Linux

Reported by: vass-vass

Solaris 10 sparc build fails

gcc -D_REENTRANT -DYYDEBUG -DYY_NO_INPUT -DFILEBENCHDIR="/opt/filebench/share/filebench" -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -I. -Wall -Wno-unknown-pragmas -g -O2 -MT ioprio.o -MD -MP -MF .deps/ioprio.Tpo -c -o ioprio.o ioprio.c
ioprio.c:17:2: #error "Unsupported arch"
ioprio.c: In function ioprio_set': ioprio.c:22: error: __NR_ioprio_set' undeclared (first use in this function)
ioprio.c:22: error: (Each undeclared identifier is reported only once
ioprio.c:22: error: for each function it appears in.)
ioprio.c: In function ioprio_get': ioprio.c:27: error: __NR_ioprio_get' undeclared (first use in this function)
*** Error code 1
make: Fatal error: Command failed for target `ioprio.o'

Reported by: *anonymous

semaphore usage in oltp personality is sub-optimal

While using filebench oltp personality as atool to size an OLTP workload resource requirement we are hitting hard a lock contention in ipc_get sugesting calls to semget prior to every call to semop. As processor resources are added to the system the %sys sky rock all the way to 75% of the total cpu cycles during our measurment period.

lockstat has been used to isolate the culprit.

See attached data.

Reported by: weddine

semaphore usage in oltp personality is sub-optimal

While using filebench oltp personality as atool to size an OLTP workload resource requirement we are hitting hard a lock contention in ipc_get sugesting calls to semget prior to every call to semop. As processor resources are added to the system the %sys sky rock all the way to 75% of the total cpu cycles during our measurment period.

lockstat locks aggreate and profiling to isolate the culpirt! See attached file.

Reported by: *anonymous

Add addtional help for benchpoint

Benchpoint's argument is counter-intuative. You must be in the directory with the profile and specify the path name without the '.prof' suffix. Otherwise you bail out of benchmark on line 421:

[dbzone01:/opt/filebench/config] root# filebench filemacro.prof
ERROR: couldn't open profile at /opt/filebench/bin/filebench line 421.

Additional help should be output at this point to help the users along.

Reported by: technikolor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.