During Tests for an Migration of a major customer application we saw in our AWR reports that most of the jobs are very write intensive. This was the point where we would like to test what happens when we change the Flash Cache Mode from Write Through to Write Back.
What are the main benefits of Write Back mode:
- it improves the write intensive operations while writing to flash cache is faster than writing to normal Hard disks
- on Exadata X3 and newer machines write performance can be improved up to 20X IOPS
- The Write Back Flash Cache accelerates reads and writes for all workloads
First of all I take a look in Metalink and found a Doc ID 1500257.1 with more details.
What are the requirements?
since April 2017 it is default if the following conditions are full filled:
- Grid and RDBMS Home
- 18.104.22.168.1 or higher
- 22.214.171.124 or higher
- 126.96.36.199 or higher
- DATA diskgroup has HIGH redundancy
When should I use Write Back?
- It makes sense if your application is write intensive
- You find significant waits for „free buffer waits“
- High IO times to check for write bottlenecks in AWR reports
What are the steps to enable Write Back?
We have the possibility to do it „offline“ so we stop the whole Grid & Rdbms Stack, but you can change it also in a Rolling manner.
- Actual Flash Cache Mode
dcli -g cell_group -l root "cellcli -e list cell attributes flashcachemode" cel04: WriteThrough cel05: WriteThrough cel06: WriteThrough cel07: WriteThrough
- Stop the whole Cluster
crsctl stop cluster -all -f
- Check State of Flash Cache
name: cel04_FLASHCACHE status: normal name: cel05_FLASHCACHE status: normal name: cel06_FLASHCACHE status: normal name: cel07_FLASHCACHE status: normal
- Steps for the Change
These steps has to be done on every Cell Server here as an example Drop the flash cache on that cell CellCLI> drop flashcache; Flash cache cel04_FLASHCACHE successfully dropped. Shut down Cell service CellCLI> alter cell shutdown services cellsrv; Stopping CELLSRV services... The SHUTDOWN of CELLSRV services was successful. Change Cell Flash Cache mode to Write Back CellCLI> alter cell flashCacheMode=writeback; Cell cel04 successfully altered Restart the Cell Service CellCLI> alter cell startup services cellsrv; Starting CELLSRV services... The STARTUP of CELLSRV services was successful. Recreate the Flash Cache CellCLI> create flashcache all; Flash cache cel04_FLASHCACHE successfully created Finally check the State on all Cell Server dcli -g cell_group -l root "cellcli -e list cell attributes flashcachemode" cel04: WriteBack cel05: WriteBack cel06: WriteBack cel07: WriteBack
So the first step was done and now the tests can go on.
In a few weeks I will give a feedback what are the real improvements so stay tuned.