Performance issues. 22 separate processes no calls

I’m using asterisk 10 and having some performance issues.

Something I have noticed is there appears to be lots of asterisk processes running. 22 separate processes. Is this normal with no calls in progress?

3657 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.69 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3659 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3660 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3661 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3662 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3663 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3664 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3665 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3666 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3667 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3668 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3670 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3671 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3672 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3673 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3674 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3675 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3677 asterisk 35 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3678 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3679 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3680 asterisk 39 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
3701 asterisk 34 19 39568 19436 8572 S 0.0 1.9 0:00.00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c

They are threads, not processes.

There is a CLI command which will tell you what they are for.

You may find some are for channel drivers that you have configured in, but with no devices.

Modern versions of linux ps will only show the headline process, unless you use an explicit option to show the ones supporting threads.

Most will be consuming very few resources (most or all of the memory is shared between them).

Yes you’re right

0xb7747b90 7503 netconsole started at [ 1430] asterisk.c listener()
0xb7783b90 3472 monitor_sig_flags started at [ 4112] asterisk.c main()
0xb77bfb90 3471 tps_processing_function started at [ 471] taskprocessor.c ast_taskprocessor_get()
0xb77fbb90 3470 lock_broker started at [ 509] func_lock.c load_module()
0xb7837b90 3469 scan_thread started at [ 882] pbx_spool.c load_module()
0xb7873b90 3467 do_monitor started at [12084] chan_dahdi.c restart_monitor()
0xb78afb90 3466 do_monitor started at [27431] chan_sip.c restart_monitor()
0xb78ebb90 3465 desc->accept_fn started at [ 576] tcptls.c ast_tcptls_server_start()
0xb7927b90 3464 sched_run started at [ 182] sched.c ast_sched_start_thread()
0xb7963b90 3463 tps_processing_function started at [ 471] taskprocessor.c ast_taskprocessor_get()
0xb7a21b90 3462 do_timing started at [ 495] res_timing_pthread.c init_timing_thread()
0xb7c97b90 3460 sched_run started at [ 182] sched.c ast_sched_start_thread()
0xb7cd3b90 3459 tps_processing_function started at [ 471] taskprocessor.c ast_taskprocessor_get()
0xb7d0fb90 3458 do_parking_thread started at [ 8303] features.c ast_features_init()
0xb7d4bb90 3457 tps_processing_function started at [ 471] taskprocessor.c ast_taskprocessor_get()
0xb7d87b90 3456 do_devstate_changes started at [ 741] devicestate.c ast_device_state_engine_init()
0xb7dc3b90 3455 tps_processing_function started at [ 471] taskprocessor.c ast_taskprocessor_get()
0xb7dffb90 3454 db_sync_thread started at [ 1017] db.c astdb_init()
0xb7f66b90 3453 logger_thread started at [ 1138] logger.c init_logger()
0xb7fa2b90 3452 listener started at [ 1490] asterisk.c ast_makesocket()
0xb7fdeb90 3451 tps_processing_function started at [ 471] taskprocessor.c ast_taskprocessor_get()