Igniters,

The first version of the guide is ready. Please check it up before it’s shared 
with the users:
https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning

*Ivan*, please clarify this:

- Should Ignite page size be always less than the SSD’s page size and OS page 
cache size? Or it can be *equal* as well? For instance if the OS page cache 
size is 4 KB what should be Ignite’s page size? I would set 4 which is not 
less! Check this paragraph here [1]

- It’s said that Intel confirm 4 KB should be enough if you can’t sort out SSD 
page size value and you give this link [2]. Please point out to the page where 
this is stated.

[1] 
https://apacheignite.readme.io/v2.1/docs/durable-memory-tuning#section-page-size
[2] 
https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ssd-server-storage-applications-paper.pdf

—
Denis

> On Sep 13, 2017, at 5:46 PM, Denis Magda <dma...@apache.org> 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.glu...@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
>> 
> 

Reply via email to