Today, thanks to @SzarekKrzysztof, one of the most experienced DevOps I know, I got familiar with another Unix operating system command called
dmesg (diagnostic message).
The command, according to Wikipedia, prints the message buffer of the kernel. Simply speaking, it displays the kernel-related messages on Unix systems. The output may be very helpful for diagnosing device failures. The device in our case was a brand new Amazon EC2 instance. Its booting process failed, but I didn’t know why. Using bash piping, a simple combination of
grep commands allowed us to find the reason:
kernel: [ 2314.580333] Out of memory: Kill process 4499 (chef-client) score 89 or sacrifice child
As we use Chef for provision which consumes quite a lot of memory, it occurred that the new instance had not enough RAM to handle all operations that should be performed during boot time.
nano instance types have only 0.5 GB of memory. Fortunately, we managed to make the instance alive manually 🛠️. Everything happened in a pre-production environment, so there was no damage 😌.
Thanks to Krzysztof, I have another tool in my toolbox 🙇.