I was running asterisk on Ubuntu 16, 1TB storage, 8 cpu, 16GB Ram, NO RAID. I discovered that asterisk capped calls at 80 concurrent calls. but when I used the ulimit descriptors 999999 command, I could get up to 150 concurrent calls. then I discovered that server cpu was used up to 112% and memory was kept at 6%.
I want to know, what is the best method to optimize asterisk server and what is the best specification of server that asterisk requires to run up to 400 concurrent calls?
CPU load is extremely dependent on exact details of usage.
I don’t know how Linux manages memory for file descriptors, but I suggest that setting an excessive value may cause performance problems in itself.
I’m somewhat surprised that you ran out of file descriptors at 80 calls, but even if you did, scaling that suggests that, say, 8,000 should be more than enough.
(My hands on experience is with development on older versions, so I won’t be able to give sizing information, but, in any case, sizing questions don’t usually produce specific answers.)