# Configure the Content Component for Speed

You can tune IDOL for faster query times, both by optimizing the query and by turning off certain features.

Make sure you thoroughly check your queries so that they do not include unnecessary terms, syntax, or parameters.

CAUTION: The following section describes advanced functionality. Before making changes to these values, make sure you understand the impact.

The configuration parameters in this section give you control over IDOL memory management that the operating system normally manages. Modifying the `Threads` parameter is an important step to match your IDOL installation to your hardware to achieve the best performance. In most other cases, the operating system performs memory management better than IDOL, and you should modify the other configuration parameters only in specific cases.

## Threads

    [Server]
    Threads=N

In a simple case, where you only have one server or component running on a machine, the value to use for this parameter is simply the number of cores you have on your machine, plus one spare thread. For more than one component, divide the number of threads between the components.

NOTE: This value is a recommendation only. Test the system at different values to determine the best number of threads for your system.

## PreCacheNumericFieldCSVs

    [Server]
    PreCacheNumericFieldCSVs=*/A11,*/CATEGORY1

When you set this parameter, IDOL Server preloads numeric field data on startup, so that the file is mapped before the first query, rather than mapping it on demand. You can use this parameter only for `NumericType` fields.

## TermCache

    [TermCache]
    TermCachePersistentKB=2097152

This parameter allows IDOL to load the dynterm index into memory. The `TermCachePersistentKB` parameter specifies the amount of memory to allocate to store the most commonly occurring terms. If you set this parameter, IDOL Server stores the `N` most commonly occurring terms (by total number of occurrences) in memory. It selects a value of `N` such that the amount of memory used to store the terms is as close as possible to the memory you allocate in the configuration parameter. The default value is `0` (zero) ,which does not cache any terms.

Use this parameter only for 64-bit Content servers where there is a large amount of available memory, and only if the top terms are generally used in queries. If the terms are not useful in queries, consider adding them to your stop word list.

If you set both `TermCachePersistentMinOccs` and `TermCachePersistentKB`, `TermCachePersistentKB` takes precedence.

## NodeTable Cache

    [Server]
    NodeTablePrepopulateCache=True
    NodeTableCacheFields=True

The `NodeTablePrepopulateCache` parameter configures IDOL Server to load the field cache when it starts. To enable field caching, set the `NodeTableCacheFields` parameter to `True`. You configure the fields to cache by using the `MemCachedType` field property. For example:

    [FieldProcessing]
    15=SetCachedFields

    [SetCachedFields]
    Property=PrintFields
    PropertyFieldCSVs=*/A13,*/A16,*/A18

    [PrintFields]
    MemCachedType=True

NOTE: Do not use `MemCachedType` fields for fields that have multiple values in one document, because the cache only stores one value.

For queries, you can use the `MemCachedType` option for the fields that are shown the most, for improved query performance. You can control the nodetable cache by using the following parameters in the `[MemoryCache]` section:

    [MemoryCache]
    MaxSize=5242880
    EvictWhenFull=True

Use the `MaxSize` parameter to specify the maximum size of the cache. Use the `EvictWhenFull` parameter to specify whether to delete old entries from the cache when new entries are added.

When the `MaxSize` is reached, IDOL Server deletes old items in the cache. Only enable field caching to store fields that are regularly accessed in your queries.

## ParametricMaxPairsPerDocument

    [Server]
    ParametricMaxPairsPerDocument=0

Setting this parameter to `0` greatly reduces the parametric storage and memory required.

NOTE: If you turn this option on, you cannot use the `Restriction` parameter for the `GetTagValues` action.

You can use the `GetQueryTagValues` action without query text to get the same effect. However, if you are using a large number of parametric queries without query text, it is generally faster to use a non-zero value for `ParametricMaxPairsPerDocument`, and use the `GetTagValues` action.

_FT_HTML5_bannerTitle.htm