Профилирование для Node.js приложения - PullRequest
0 голосов
/ 04 февраля 2020

Я перешел по этой ссылке https://nodejs.org/uk/docs/guides/simple-profiling/, чтобы профилировать конкретную конечную точку в моем приложении (Expressjs).

Конечная точка загрузит PDF с s3 используйте пул потоков (пул из 4 worker_threads), чтобы заполнить pdf данными (я использую HummusJS для заполнения pdf), затем загрузите заполненный файл в s3 и ответьте signedUrl для заполненного файла.

Тест был выполнен apache benchmark:

ab -p req.json -T application/json -c 20 -n 2000 http://{endpoint}

Результат профилирования был таким:

 [Bottom up (heavy) profile]:
  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 1.0% are not shown.

   ticks parent  name
  287597   89.2%  epoll_pwait
 [Bottom up (heavy) profile]:
  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 1.0% are not shown.

   ticks parent  name
  1515166   98.5%  epoll_wait

Итак, у меня вопрос, что означают epoll_wait и epoll_pwait, поскольку они занимают почти 100% процессорного времени, занимаемого программой?

1 Ответ

1 голос
/ 04 февраля 2020

См. google.com / search? Q = epoll_wait .

Короче говоря, поток чего-то ждал (может быть, сеть? Может быть, другой поток?).

...