При тестировании моего веб-приложения под нагрузкой я получил следующую выдержку top
под Linux:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3964 nobody 20 0 4965m 622m 6048 S 8.5 11.0 6:02.49 java
1985 mysql 20 0 294m 125m 3804 S 2.1 2.2 0:05.39 /usr/sbin/mysqld
Мне нужно объяснение в столбце %CPU
Java.Насколько я понимаю, во время веб-запроса один из потоков java
выполняет некоторую чистую логику Java, занимая некоторое время процессора (пусть это будет 5 мс).Затем он подключается к базе данных через JDBC, отправляет некоторый sql-запрос и ожидает, скажем, 10ms ответа.Эти 10 мс явно учитываются как /usr/sbin/mysqld
загрузка ЦП.Затем поток java
возобновляет свою работу и завершает свою работу, потребляя еще 20 мс и общее время выполнения 5 + 10 + 20 = 30 мс.
И вопрос новичка таков: не думаете ли вы, что эти дБ 10 мс считаются дважды: один раз как поток Java, ожидающий, пока БД обработает запрос, и второй раз как само использование ЦП базы данных?Что я здесь не понимаю?