Currently my application periodically blocked in IO , and the output is very low . I use some command to trace the process.
By using jstack i found that the
In addition to clock jumps and aforementioned (rather old) THP kernel bug, another common reason for java to unexpectedly block on IO is reading very slow and blocking /dev/random which some libraries prefer over more commonly used and much better performing /dev/urandom.
Easy way to tell if that was the culprit:
sudo mv /dev/random /dev/random.real
sudo ln -s /dev/urandom /dev/random
...then restart the app and see if it stops IO blocking. Once done with the test, you probably want to restore /dev/random:
sudo mv /dev/random.real /dev/random
...and open a bug with application vendor asking to use /dev/urandom where appropriate.