You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by venuchitta <ve...@gmail.com> on 2018/02/27 00:19:32 UTC

Ignite Local Persistence slowing after reads starting hit the disk

Hi,

   I have a use case where in Windows env. we want to cache huge blobs which
may range from 20KB to 2MB on boxes where also other services are running
(so cache should consumes less CPU). They need to have persistence
capability during system crash or process restarts. I am using Intel Xeon 12
logical core, 128 GB Ram and 1TB SSD. 

  I am using C# Ignite Apis with the following configuration:

            var dataRegionConfiguration = new DataRegionConfiguration
            {
                Name = "Local10GB",
                InitialSize = 10* 1024 * 1024 * 1024,
                MaxSize = 20* 1024 * 1024 * 1024,
                PersistenceEnabled = true,
                MetricsEnabled = true
            };
            var dataStorageConfiguration = new DataStorageConfiguration
            {
                MetricsEnabled = true,
                DefaultDataRegionConfiguration = dataRegionConfiguration,
                // WalMode = WalMode.None,
            };

            var igniteConfiguration = new IgniteConfiguration
            {
                CacheConfiguration = new[]
                {
                    new CacheConfiguration
                    {
                        Name = "LocalCache",
                        CacheMode = CacheMode.Local,
                        Backups = 0,
                        EnableStatistics = true,
                        DataRegionName = "Local10GB"
                    }
                },
               DataStorageConfiguration = dataStorageConfiguration,
            };

I ma having a wrapper around Ignite which fires Read/Write requests with a
specific data size. Right now I am having tests with 90% Reads and 10%
writes, 20KB data size and with TPS of 4000 requests per sec. It initially
is handling that but soon after it starting hit the disk for reads (which is
happening after In-memory is full), the checkpointing is latent thus writes
and then reads too. The overall Transactions Per Second is dropping towards
low 100's. I even turned WAL off, but not having an improvement.

   I want to know if Ignite is ideal for the use case I mentioned and if
there are any settings I can tune to improve the situation. Any help or
suggestions are appreciated.

Thanks.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite Local Persistence slowing after reads starting hit the disk

Posted by Denis Mekhanikov <dm...@gmail.com>.
Hi!

Most probably, you get the performance drop, when checkpointing process
starts.
So, if you have a lot of writes, they will be limited by the speed of your
disk.

You can try tuning durable memory to achieve better performance.
Here is documentation on this topic:
https://apacheignite.readme.io/docs/durable-memory-tuning
Write throttling should help in your situation.

Denis


вт, 27 февр. 2018 г. в 3:19, venuchitta <ve...@gmail.com>:

> Hi,
>
>    I have a use case where in Windows env. we want to cache huge blobs
> which
> may range from 20KB to 2MB on boxes where also other services are running
> (so cache should consumes less CPU). They need to have persistence
> capability during system crash or process restarts. I am using Intel Xeon
> 12
> logical core, 128 GB Ram and 1TB SSD.
>
>   I am using C# Ignite Apis with the following configuration:
>
>             var dataRegionConfiguration = new DataRegionConfiguration
>             {
>                 Name = "Local10GB",
>                 InitialSize = 10* 1024 * 1024 * 1024,
>                 MaxSize = 20* 1024 * 1024 * 1024,
>                 PersistenceEnabled = true,
>                 MetricsEnabled = true
>             };
>             var dataStorageConfiguration = new DataStorageConfiguration
>             {
>                 MetricsEnabled = true,
>                 DefaultDataRegionConfiguration = dataRegionConfiguration,
>                 // WalMode = WalMode.None,
>             };
>
>             var igniteConfiguration = new IgniteConfiguration
>             {
>                 CacheConfiguration = new[]
>                 {
>                     new CacheConfiguration
>                     {
>                         Name = "LocalCache",
>                         CacheMode = CacheMode.Local,
>                         Backups = 0,
>                         EnableStatistics = true,
>                         DataRegionName = "Local10GB"
>                     }
>                 },
>                DataStorageConfiguration = dataStorageConfiguration,
>             };
>
> I ma having a wrapper around Ignite which fires Read/Write requests with a
> specific data size. Right now I am having tests with 90% Reads and 10%
> writes, 20KB data size and with TPS of 4000 requests per sec. It initially
> is handling that but soon after it starting hit the disk for reads (which
> is
> happening after In-memory is full), the checkpointing is latent thus writes
> and then reads too. The overall Transactions Per Second is dropping towards
> low 100's. I even turned WAL off, but not having an improvement.
>
>    I want to know if Ignite is ideal for the use case I mentioned and if
> there are any settings I can tune to improve the situation. Any help or
> suggestions are appreciated.
>
> Thanks.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>