如何确定 terracotta 服务器是否正在使用磁盘存储?
How to find out if terracotta server is using disk storage?
我设置了一个使用磁盘存储来缓存一些文件的 ehcache。这是有效的,我可以看到在磁盘上创建的缓存文件,但我想在 terracotta 服务器中也有这种行为,所以缓存可以被多个客户端访问。
我已经设置了 terracotta 服务器,调整了 ehcache 配置,我可以看到缓存正在工作,但我不确定它是在使用内存还是磁盘。我只想为这个缓存使用磁盘。
我也收到一些这样的警告:WARN - Asking for a large amount of memory: 26179740 bytes
兵马俑配置:
<servers>
<mirror-group>
<server host="localhost" name="localhost" >
<data>/opt/terracotta/data</data>
<tsa-port>9510</tsa-port>
<management-port>9540</management-port>
<tsa-group-port>9530</tsa-group-port>
<dataStorage size="2g">
<offheap size="100m"/>
<hybrid/>
</dataStorage>
<logs>stdout:</logs>
</server>
</mirror-group>
我正在以编程方式配置 ehcache,我确定以下配置是错误的,但可能接近所需。
TerracottaConfiguration config = new TerracottaConfiguration()
.clustered(true)
.compressionEnabled(true);
Cache httpCache = new Cache(new CacheConfiguration()
.name(HTTP_CACHE)
.maxEntriesLocalHeap(1)
.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU)
.diskExpiryThreadIntervalSeconds(Properties.CACHE_HTTP_EXPIRY)
.persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.DISTRIBUTED))
.terracotta(config));
鉴于评论中给出的配置和版本信息:
开源 Terracotta 服务器仅使用内存存储。
<dataStorage size="2g">
<offheap size="2g"/>
</dataStorage>
在此示例中,您有 2Gb 的数据存储空间,全部使用堆外存储。
当然不会有磁盘内容。
这意味着如果服务器关闭,所有数据都会丢失。
当然你可以在一个镜像组中有两个服务器以获得高可用性。
使用 Enterprise 功能,您可以有效地将数据持久保存在磁盘上以启用重启能力。
<dataStorage size="2g">
<offheap size="200m"/>
<hybrid/>
</dataStorage>
上面的示例声明了 2Gb 的存储空间,其中 200Mb 将由内存提供,其余的由磁盘提供。
请注意,为了具有完整的服务器可重启性,您需要通过以下方式启用它:每个服务器元素中的 <restartable enabled="true"/>
。
有关所有这些的更多详细信息,请参阅 product documentation。
另请注意,您应该为客户端和服务器使用相同的版本。虽然 4.3 行支持不同的客户端和服务器版本,但它旨在滚动升级,不推荐使用较长的 运行 设置。
我设置了一个使用磁盘存储来缓存一些文件的 ehcache。这是有效的,我可以看到在磁盘上创建的缓存文件,但我想在 terracotta 服务器中也有这种行为,所以缓存可以被多个客户端访问。
我已经设置了 terracotta 服务器,调整了 ehcache 配置,我可以看到缓存正在工作,但我不确定它是在使用内存还是磁盘。我只想为这个缓存使用磁盘。
我也收到一些这样的警告:WARN - Asking for a large amount of memory: 26179740 bytes
兵马俑配置:
<servers>
<mirror-group>
<server host="localhost" name="localhost" >
<data>/opt/terracotta/data</data>
<tsa-port>9510</tsa-port>
<management-port>9540</management-port>
<tsa-group-port>9530</tsa-group-port>
<dataStorage size="2g">
<offheap size="100m"/>
<hybrid/>
</dataStorage>
<logs>stdout:</logs>
</server>
</mirror-group>
我正在以编程方式配置 ehcache,我确定以下配置是错误的,但可能接近所需。
TerracottaConfiguration config = new TerracottaConfiguration()
.clustered(true)
.compressionEnabled(true);
Cache httpCache = new Cache(new CacheConfiguration()
.name(HTTP_CACHE)
.maxEntriesLocalHeap(1)
.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU)
.diskExpiryThreadIntervalSeconds(Properties.CACHE_HTTP_EXPIRY)
.persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.DISTRIBUTED))
.terracotta(config));
鉴于评论中给出的配置和版本信息:
开源 Terracotta 服务器仅使用内存存储。
<dataStorage size="2g"> <offheap size="2g"/> </dataStorage>
在此示例中,您有 2Gb 的数据存储空间,全部使用堆外存储。 当然不会有磁盘内容。 这意味着如果服务器关闭,所有数据都会丢失。 当然你可以在一个镜像组中有两个服务器以获得高可用性。
使用 Enterprise 功能,您可以有效地将数据持久保存在磁盘上以启用重启能力。
<dataStorage size="2g"> <offheap size="200m"/> <hybrid/> </dataStorage>
上面的示例声明了 2Gb 的存储空间,其中 200Mb 将由内存提供,其余的由磁盘提供。 请注意,为了具有完整的服务器可重启性,您需要通过以下方式启用它:每个服务器元素中的
<restartable enabled="true"/>
。
有关所有这些的更多详细信息,请参阅 product documentation。
另请注意,您应该为客户端和服务器使用相同的版本。虽然 4.3 行支持不同的客户端和服务器版本,但它旨在滚动升级,不推荐使用较长的 运行 设置。