Due to large disk allocation, stale data keep living on the disk. Hence if a bucket reaches max capacity it always remain full.
Current data size is around 175GB per node.
Current config is giving ~1.5 ms response, but intermittently it shoots up to ~10ms.
Any tuning with respect to theadpools, persistence=true or false, linux optimization is welcome. Even any troubleshooting tips are welcome.
Or Any advice on actively evicting data without affecting the performance of get/put/delete operations.
Also I read about TickingTimeSource can improve performance ~20-30%. Any practical experience regarding that
<?xml version="1.0" encoding="UTF-8"?>
<ehcache:config
xmlns:xsi='
http://www.w3.org/2001/XMLSchema-instance'
xmlns:ehcache='
http://www.ehcache.org/v3'
xmlns:jsr107='
http://www.ehcache.org/v3/jsr107'
xsi:schemaLocation="
http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.0.xsd">
<ehcache:persistence directory="/opt/ehcache/data" />
<ehcache:cache alias="basicCache">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">2</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="MB" persistent="true">10</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="1">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">300</ehcache:offheap>
<ehcache:disk unit="MB" persistent="true">500</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="2">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">300</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">500</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="3">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">300</ehcache:offheap>
<ehcache:disk unit="MB" persistent="true">500</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="4">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">300</ehcache:offheap>
<ehcache:disk unit="MB" persistent="true">500</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="5">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">400</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">15</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="7">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">400</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">2</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="10">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">400</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">5</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="12">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">400</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">2</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="15">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">700</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">5</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="20">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">700</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">5</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="30">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">700</ehcache:offheap>
<ehcache:disk unit="GB" persistent="false">60</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="40">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">700</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">3</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="60">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">20</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="90">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">2</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="120">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">20</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="180">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">10</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="240">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="360">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">10</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="720">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">4</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="1440">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:offheap unit="MB">500</ehcache:offheap>
<ehcache:disk unit="GB" persistent="true">2</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="2880">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">172800</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="7200">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">432000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">20</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="8640">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">518400</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="14400">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">864000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">10</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="43200">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">2592000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="144000">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">8640000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="432000">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">25920000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="525600">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">31536000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="1440000">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">86400000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">1</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
<ehcache:cache alias="4320000">
<ehcache:key-type>java.lang.String</ehcache:key-type>
<ehcache:value-type>byte[]</ehcache:value-type>
<ehcache:expiry>
<ehcache:ttl unit="seconds">259200000</ehcache:ttl>
</ehcache:expiry>
<ehcache:resources>
<ehcache:heap unit="MB">1</ehcache:heap>
<ehcache:disk unit="GB" persistent="true">60</ehcache:disk>
</ehcache:resources>
</ehcache:cache>
....
Looking forward for some great advice from the community.