ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Denis Magda <dma...@apache.org>
Subject Re: Durable Memory and Ignite Persistence Tuning
Date Fri, 15 Sep 2017 22:38:59 GMT
Thanks Ivan, *no less* sounds best for me.

Prachi, please do final editing of the doc:
https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning

—
Denis

> On Sep 15, 2017, at 12:24 AM, Ivan Rakov <ivan.glukos@gmail.com> wrote:
> 
> Denis,
> 
> Yes, Ignite page size should be *greater or equal* than OS page cache size and SSD page
size. I mentioned it in advice list:
> 
>> page size of Ignite shouldn't be less than SSD page size
>> Page size of Ignite shouldn't be less than OS page size
> 
> Sorry for vague wording.
> We should fix this in documentation.
> 
> 
> Best Regards,
> Ivan Rakov
> 
> On 14.09.2017 3:46, Denis Magda wrote:
>> Ivan,
>> 
>> Documented:
>> https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning <https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning>
>> 
>> However, I’m a bit confused with you 6. point regarding the page size calculation.
Should Ignite page size be always less than the SSD’s page size and OS page cache size?
Or it can be equal? For instance if the OS page cache size is 4 KB what should be Ignite’s
page size? That’s the section about this: https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning#section-page-size
<https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning#section-page-size>
>> 
>> —
>> Denis
>> 
>>> On Sep 13, 2017, at 2:29 AM, Ivan Rakov <ivan.glukos@gmail.com> wrote:
>>> 
>>> Folks,
>>> 
>>> We had some experience of benchmarking Ignite with persistent store on SSD. I
think we can share some helpful advice. None of them require changing configuration of Ignite
or persistent store.
>>> 
>>> *Tuning advice for users*
>>> 
>>> 1) Be prepared for LFS performance decrease after several hours of intensive
load. Unfortunately, that's how SSD drives work: http://codecapsule.com/2014/02/12/coding-for-ssds-part-2-architecture-of-an-ssd-and-benchmarking/
>>> Consider buying fast production-level SSD drives.
>>> 2) Consider using separate drives for LFS files and WAL. Ignite actively performs
writes to both LFS and WAL under intensive load, and having two devices will double your throughput
limit.
>>> 3) Over-provision your SSD. Performance of random writes on 50% filled disk is
much better than on 90% filled. SSD Over-Provisioning And Its Benefits: http://www.seagate.com/ru/ru/tech-insights/ssd-over-provisioning-benefits-master-ti/
>>> 4) Leave free space in RAM to let OS use page cache and optimize writes. Total
size of all memory policies shouldn't exceed 70% of your RAM.
>>> 5) Make sure that OS doesn't utilize swap. If you use Unix, best option is set
vm.swappiness to 0.
>>> 6) Try to find out page size of your SSD. Ideally, page size of Ignite shouldn't
be less than SSD page size. Possible approaches:
>>> Find it in device specification (some manufacturers don't reveal it)
>>> Try running SSD benchmarks
>>> If you are not sure, just set page size to 4K. As various benchmarks use 4K pages,
manufacturers have to adapt drives for 4K random write workload. Whitepaper from Intel showing
that 4K pages are enough: https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ssd-server-storage-applications-paper.pdf
>>> Check your OS page cache size. Page size of Ignite shouldn't be less than OS
page size. How to check OS cache page size in Unix: https://unix.stackexchange.com/questions/128213/how-is-page-size-determined-in-virtual-address-space
>>> 
>>> 
>>> Best Regards,
>>> Ivan Rakov
>>> 
>>> On 01.09.2017 21:08, Denis Magda wrote:
>>>> Igniters,
>>>> 
>>>> I see a lot of complains regarding the performance of the subj on the user
list. At the same time, I do believe that in most scenarios it’s a lack of knowledge that
we keep in secret.
>>>> 
>>>> It's time to document Durable Memory and its Native Persistence tuning parameters.
Let's start doing this for Linux based deployments first. Here is what we have for now (which
is almost nothing): https://apacheignite.readme.io/docs/durable-memory-tuning <https://apacheignite.readme.io/docs/durable-memory-tuning>
>>>> 
>>>> Ideally, at some point we have to come up with doc like this: https://access.redhat.com/sites/default/files/attachments/deploying-oracle-12c-on-rhel6_1.2_1.pdf
>>>> 
>>>> Please share your expertise in a form of settings that have to be put on
the paper. We put them in JIRA and document afterwords:
>>>> https://issues.apache.org/jira/browse/IGNITE-6246 <https://issues.apache.org/jira/browse/IGNITE-6246>
>>>> 
>>>> —
>>>> Denis
>> 
> 


Mime
View raw message