txcheck Executable Previous Next txrender Executable

Appendix B, Toxik Executables
txperf Executable



The txperf executable is used to test the performance of various Toxik subsystems. txperf is built by the Toxik application layer as a separate executable which depends on several Toxik libraries. It runs a number of performance tests either individually or simultaneously and covers the following subsystems.

txperf runs a number of performance tests either individually or simultaneously and covers the following subsystems:

Each test subsystem can be configured with various parameters. Any number of subsystems can be tested simultaneously but each subsystem will only have one configuration during the execution of the performance tool. The profiling tool will not run simultaneously with Toxik or any Toxik process including itself.

Disk IO Top

The disk IO tests are invoked by the -disk switch. These tests consist of reading and writing bytes through single threaded calls.

The behavior of disk IO tests are controlled by the following suboptions:

size=<n> where <n> is the number of bytes the operation read/write. This suboption measures the speed at which bytes can be read/written depending of the size of the file. This measures the effect of file fragmentation depending on file size.

rblock=<b> where <b> is the size of each read. This suboption indicates that the file created will be read in chunk of <l> bytes.

rblock=<b> where <b> is the size of each write. This suboption indicates that the file created will be read in chunk of <l> bytes.

file=<filepath> where <filepath> indicates where the file will be created.

iteration=<i> where <i> indicates the number of times the test is repeated.

File System Top

The file system tests are invoked by the -fs switch. These tests consist of opening files, closing files, listing directories, verifying the existence of files, creating files, and deleting files.

The behavior of file-system tests is controlled by the following sub-options:

files=<n> where <n> is the number of files to create. This suboption measures the speed at which files can be created and the number of creations which can be done per second, then verifies the existence of each file to measure the performance of determining a file's existence. Once all files are verified, each file is opened, then all files are closed and timing data for closing files is collected. The last three operations--verifying the existence of files, opening files, and closing files--are be performed in various orders (sequential, reverse, random, butterfly). The default is 256 files.

subdir=<l> where <l> is the number of subdirectory levels. This suboption indicates that files created by the test will be spread across a directory tree of depth <l>. The default is to create a flat directory structure. Valid range is from 1 to 16.

loc=<path> where <path> indicates where files will be created. A directory will be created below <path>. That directory will contain all the files created during the execution of the tool. When the tool finishes its execution, the created subdirectory will be destroyed along with all its contents. The default is specified by the TMP environment variable.

Content Server Top

The content server tests is invoked with the -content switch. Content server will measure read and write operations using the Toxik content server. Collected data on I/O will include average throughput, sustained throughput and average/min/max latency.

The behavior of disk I/O tests is controlled by the following sub-options:

mode=<ro|wo|rw> where ro indicates that only read performance is measured, rw indicates that both read and write performance is measured and wo that only writing performance is measured. The default mode is ro.

time=<s> where <s> is the number of seconds devoted to each transfer test. The default is 5. For each of read and write, performance measurements will be accumulated over <s> seconds.

size=<s> where <s> is the number of kilobytes of each file used for testing I/O performance. The default size is 4096.

blocks=<s> where <s> is the size of I/O blocks, in kilobytes used for testing I/O performance. I/O will be performed in blocks of this size. The default will be 512.

queue=<q> where <q> is the number of outstanding requests. The default will be 32.

Disk Cache Top

The disk cache performance tests is invoked with the -cache switch. Cache tests involve caching tiles, looking up tiles, reading tiles, writing tiles and deleting tiles. Disk cache tests exercise disk I/O simultaneously to index access.

The behavior of disk cache tests is controlled by the following sub-options:

time=<s> where <s> is the number of seconds devoted to the cache tests. The default is 5. Performance numbers will be accumulated over <s> seconds.

tiles=<n> where <n> is the number of storage tiles allocated. The default is 256.

min=<s> where <s> is the minimum number of kilobytes for each storage tile. The default is 512. The range is from 64 to 8192 but cannot exceed the max size.

max=<s> where <s> is the maximum number of kilobytes for each storage tile. The default is 8192. The range is from 64 to 8192 but must be at least equal to the minimum size. If min and max are set to the same value, all storage tiles will be the same size.

balance=<p> where <p> is the percentage of tiles whose size is closer to the maximum size than the minimum size. The default is 75.

empty=<p> where <p> is the percentage of empty tiles used. The default is 0. If set to 100, only empty tiles will be tested (cache lookup of no disk I/O).

Memory Top

The memory performance tests are controlled by the -mem switch. Using this switch will cause memory-to-memory transfers to be measured for performance. The goal of these tests is to allow the FSB to be used during disk and cache tests so that FSB contention can be detected.

The behavior of memory tests is controlled by the following sub-options:

time=<s> where <s> is the number of seconds devoted to the memory tests. The default is 5. Performance numbers will be accumulated over <s> seconds.

blocks=<s> where <s> is the size of blocks copied from memory-to-memory. The default is 512K.

freq=<f> where <f> is the frequency in hertz of memory transfers. The default is 96Hz. If 0 is specified than memory transfers will be performed continuously.

Previous Next