Я перешел по этой ссылке 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% процессорного времени, занимаемого программой?