filebench / filebench Goto Github PK
View Code? Open in Web Editor NEWFile 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
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
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
the directio attributes is not implemented.
A small patch to have it works :
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
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
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
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
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
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
sadmin$ uname -a Darwin xserve.hoondimac.lan 11.1.0 Darwin Kernel Version 11.1.0: Tue Jul 26 16:09:02 PDT 2011; root:xnu-1699.22.81~1/RELEASE_I386 i386
make output failure is here:
https://sourceforge.net/projects/filebench/forums/forum/452997/topic/4686773
Reported by: vass-vass
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:
if(@argv != 1) {
print "Usage: benchpoint <profile name>\n";
exit(1);
}
$PROFILENAME = $ARGV[0];
$PROFILE = $PROFILENAME;
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
When one runs Filebench on FreeBSD, he sees ugly warnings:
######################################################################
######################################################################
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
######################################################################
######################################################################
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
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
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
The INSTALLATION document is wrong, it says :
./configure --prefix=/opt
but it should be :
./configure --prefix=/opt/filebench
Reported by: fbacchella
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
bash-3.00$ ./filebench
Filebench Version 1.4.9
5000: 0.000: Allocated 0MB of shared memory
filebench>
Reported by: vass-vass
subj.
Reported by: vass-vass
Reported by: vass-vass
Two issues have been reported:
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
$ /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
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
The filebench cvs repository is broken, the file config.h.in is empty :
http://filebench.cvs.sourceforge.net/viewvc/\*checkout\*/filebench/filebench/config.h.in?revision=1.8
It's not a big deal because it can be build by the makefile. But you need a good config.h.in to generate the makefile. So the bootstrap is not easy.
Reported by: fbacchella
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/filebenchqa/auto-test/filebench-1.4.9$
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:
Reported by: vass-vass
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
I'm attaching a fix for the above described bug.
Reported by: jkar8572
We open and ALLOCATE memory every time when we read from /proc/<pid>/stats...
Reported by: vass-vass
Failure during make on OpenIndiana 148 (like OpenSolaris 148). I'm not sure how to proceed.
Output (sanitized):
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
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
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
If one calls "run" multiple times - things go wrong.
Reported by: vass-vass
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
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
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
load command fails.
Reported by: *anonymous
It should be replaced by offset attribute bind to a custom variable
Reported by: vass-vass
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
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
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
So, if read returns less than what was requested (e.g. 0 if loopdevice is not connected to the file) - this will be skipped completely.
Reported by: *anonymous
Here is an example:
Reported by: vass-vass
Fatal error 'mutex is on list' at line 422 in file /usr/src/lib/libthr/thread/thr_mutex.c (errno = 0)
message appears in the end of webserver wokload run on FreeBSD
Look into the attached file.
Reported by: vass-vass
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
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:
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
We should have just fileset, no file.
Reported by: vass-vass
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
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
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
run is only executed once instead of multiple times
Reported by: vass-vass
Installing partially fails onto a Solaris 10/SPARC host.
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.
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
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
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
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.