Skip to Main Content
  • Questions
  • smart flash cache question (non-exadata)

Breadcrumb

May 4th

Question and Answer

Connor McDonald

Thanks for the question, Sokrates.

Asked: September 03, 2015 - 6:06 am UTC

Last updated: January 09, 2020 - 12:32 pm UTC

Version: 12.1.0.2.0

Viewed 1000+ times

You Asked

I am playing around with the smart flash cache on Oracle Enterprise Linux

I have set up flash cache
SQL> select name, value from v$parameter where name like 'db_flash_cache%';

NAME
--------------------------------------------------------------------------------
VALUE
------------------------------------------------------------------------------------------
db_flash_cache_file
/dev/sda, /dev/sdb, /dev/sdc, /dev/sdd, /dev/sde, /dev/sdf

db_flash_cache_size
799937658880, 799937658880, 799937658880, 799937658880, 799937658880, 799937658880



, filled my buffer cache and still reading some big tables, expecting that blocks will be transferred from 1st level buffer cache into second level flash cache.

However, this does not seem to happen at all for hours:

SQL> select name, value from v$sysstat where name like 'flash cache%' order by 2 desc;

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
flash cache insert skip: DBWR overloaded                          210766864
flash cache insert skip: not useful                                   15922
flash cache insert skip: not current                                    422
flash cache eviction: aged out                                            0
flash cache insert skip: corrupt                                          0
flash cache eviction: invalidated                                         0
flash cache insert skip: exists                                           0
flash cache inserts                                                       0
flash cache insert skip: modification                                     0
flash cache eviction: buffer pinned                                       0



This seems to say to me that DBWR is all the time too busy with writing dirty blocks to disk and cannot afford spending time to transfer blocks from L1-cache onto L2-cache, however no write activity is ongoing at all.
So L2-cache isn't used at all.

How can I fix that ?

Thanks

and Connor said...

Some years back, Harald van Breederode did an awesome demo of smart flash cache using just a simple VM.

I had a google, and found his scripts and output here:

https://prutser.files.wordpress.com/2011/12/sfc_demo_output.pdf

and some really good presentation material as well:

https://prutser.files.wordpress.com/2012/03/smartflashcache.pdf

How about doing a run through of that demo, and see how you go. At least that will validate that the technology is working on your platform etc.

Did you alter tables to have the flash_cache setting ?

Hope this helps.
AskTom team


Rating

  (2 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Thanks for the links

Sokrates, September 03, 2015 - 1:17 pm UTC

.. I will check them

A reader, January 08, 2020 - 1:49 pm UTC

Sadly enough the blog of Harald is offline.
Connor McDonald
January 09, 2020 - 12:32 pm UTC

Yes, I saw that myself recently :-(