What is Fast Crash Dump?
Fast Crash Dump is a feature that reduces the time it takes to save a crash dump. It achieves this by compressing the dump via utilizing all CPUs for this. Previously just one CPU was saving the dump, while the other CPUs were idle. The detailed changes are:
– Parallelizes page compression by using multiple CPUs
– Uses a more aggressive compression algorithm such as bzip2 (if sufficient CPUs and memory are available)
– On reboot savecore extracts the compressed data from the dump device and writes it to the filesystem in compressed form (unlike previous Solaris releases)
Why was it implemented?
It can take a long time on large memory machines to save a dump which reduces the availability of the system. With this feature the size of the dump is significantly reduced which saves disk space and which reduces the time to transfer the dump to another system, e.g. to Oracle Support Services to analyze the dump. This feature is available from Solaris 10 Update 9 (SPARC/x86)
How to set it up
There is no need to activate Fast Crash Dump as it is enabled by default. You can control it with :
# dumpadm -z {on|off}
How to work with it
After a crash dump has been written because of a panic or by running savecore -L, the file vmdump.N can usually be found in /var/crash/`uname -n`(run the dumpadm command to see if that’s where you are directing your crash dumps).
Before loading it with a debugger the dump has to be decompressed using savecore command.
In S10/S11/S11.1 we use :
# savecore -f vmdump.N [directory]
Starting with S11.2, new option was introduced to specify destination directory:
# savecore -f vmdump.N -D [directory]
If directory is specified, the crash dump file is extracted in the specified directory. Otherwise, it is extracted in the directory where vmdump.N exists.The savecore command can be run on another system of a similar architecture. The word size (32 or 64 bit) and the byte order (little or big endian) have to be the same. Subsequently started debugger has to run on the same architecture as well.
If mdb is invoked and just vmdump.N exists mdb will give a helpful message:
# mdb -k 6 cannot open compressed dump; decompress using savecore -f vmdump.6