/* * Sample configuration file for Simutrace 3.0 * * This is the server configuration file. It contains all options that the * server understands. Simutrace utilizes the libconfig library to read * structured configuration files. For more information on the grammar please * refer to the libconfig documentation. * * To use the configuration file start the server with the -c option (full name * "--server.configuration"), specifying the name of the file: * * ./simustore -c simustore.cfg * * You may also set all options as command line parameters using their full * path, proceeded by "--", or their short name (if available), proceeded * by "-". For example to specify the logging level you may write: * * ./simustore --server.loglevel 5 * or ./simustore -v 5 * * Supplying the same option in both, the configuration file and the command * line, will lead the server to ignore the setting in the configuration file * and apply the value given via the command line. * * Options in this configuration file are set according to their default * values and thus may be commented-out or removed without effect. Alternative * values which might be helpful are commented-out with "//". * * NOTE: All paths must comply with the operating system's syntax. This sample * defaults to the Linux format. Change the paths for Windows accordingly. * * Most important settings for... * ...general setup: server.workspace, server.bindings, * ...performance : server.memmgmt.poolSize, server.memmgmt.readAhead, * client.memmgmt.poolSize */ // ======================= Server Settings ======================= server: { // ===== Logging and Verbosity ===== /* The detail level of logging (-v). Value in the range [0;6], with higher values delivering more details. The values correspond to: 0 = Fatal, 1 = Error, 2 = Warning, 3 = Information, 4 = Debug, 5 = Memory Debug, 6 = Rpc Debug. Levels 4+ require a debug build. */ loglevel = 4; /* If set, the server won't print output to stdout (-q). */ quiet = false; // ===== Environment ===== /* Path to workspace (-w). Will be used as base for relative file paths (e.g., for trace files). If not set, the current working directory (CWD) of the process is used. */ workspace = ""; //workspace = "/home/myuser/myproject/"; // ===== Services ===== /* The port bindings that the server will establish (-b). Multiple bindings can be separated by ','. For more details on the binding syntax refer to the StSessionCreate() function in the public API documentation. Note: the given pipe path is also valid on Windows. */ bindings = "local:/tmp/.simutrace"; //bindings = "local:/tmp/.simutrace,socket:*:5341"; // ===== Memory Management ===== memmgmt: { /* The size of the server's internal memory pool in MiB. To perform compression/decompression, the server needs to allocate temporary memory, which is satisfied from the internal pool. The pool size also limits the amount of trace data, which can be cached in RAM. */ poolSize = 4096; /* If the server cannot allocate memory from its internal pool or a store's memory pool, the allocator will retry the operation. retrySleep specifies the time in ms that the allocator will wait, retryCount limits the number of retries until the operation fails.*/ retrySleep = 5000; retryCount = 100; /* If set, disables caching of trace data in the server. This reduces memory consumption, but also heavily harms performance for complex compressors such as the built-in memory trace compressor. */ disableCache = false; /* The number of 64 MiB segments in a stream to read in speculatively ahead of the user's request when using sequential scan access. This number should not greatly exceed the amount of available CPU cores. Finding the right value for a system requires a bit of experimentation. A value of 0 deactivates read-ahead. Note: While read-ahead greatly improves sequential read performance, it also requires a lot of memory. Ensure to configure the pool sizes appropriately high. */ readAhead = 4; }; // ===== Session Management ===== session: { /* The number of milliseconds the session manager waits for each worker thread to close gracefully. */ closeTimeout = 10000; }; // ===== Worker Pool Management ===== workerpool: { /* The number of worker threads that will be allocated to perform trace data compression/decompression. Simutrace will manage the number automatically when specifying a value of 0. */ size = 0; }; requestworkerpool: { /* The number of worker threads that will be allocated to accept new server connections. Simutrace will manage the number automatically when specifying a value of 0. Note: Each connection will get a designated thread after successful establishment */ size = 0; }; }; // ======================= Client Settings ======================= client: { // ===== Memory Management ===== memmgmt: { /* Size of the store memory pool. A buffer of the specified size will be allocated for each open store. Since the buffer is shared with the client, the client determines the pool size and tells the server which size it supports. Specifying the setting here, will force the server to use this value and ignore the client's request. This can be helpful when choosing a different pool size without having to add a call to StSessionSetConfiguration() in the client ahead of store creation. */ //poolSize = 1024; }; };