App hosted in IIS 8.5 on dedicated server with configuration dual xeon E5 2620 v2, 64 GB Ram, 1 TB HDD.
Server Technolgy : Web api 2, Angular js, Entity framework 6.0, SQL server 2014. Client Side : web browser with angularjs and android mobile app which call web api method using http request. Extra Tools : Autofac 3.5, Automapper, newtonsoft json, after refering some post, we have remove automapper from continuous calling method.
whenever there are 100 user will be online cpu consume almost 100%. i have tried so many debugger application, performance monitor, and try to get solution but no luck, i have generate some report which function couse problem. as per some debuging tools i got below result, plz see below image.
but still not identify problem,
we have hosted app and see this problem, we think its some coding problem and optimization. so we have started to optimize app and update it dailly base in server and see again usage, but there are no any better performance.
as per user request, per user it will get 2 request per second and one input operation which is not on continue based. may be its in minute or more.
after 100 user start above operation cpu reach on 99% to 100%, and when user increased app become slow, when 100 user are there, one request complete in about 500ms to 800ms. after 200 user are there it will complete in 2 sec to 4 sec. and its become slower and slower.
as per one frnd which has also same application, same user request, they have published on VPS, and they are 2000 user are working at a time still not down, as per comparison with them, i have dedicated server and no resource devide to any one. so i think i will get more enough performance then my frnd
as per some expert frnds advice, its block some request, may be in EF or iis. but how and why. there are all code are as usual.
I hope i will get solution as soon as possible, now its a headeach problem for me.
Thanks in advance.
You have so many tools constantly monitoring your server impacting throughput.. Try to uninstall them from the production environment. Ideally such tools are not recommended on live environment but you can install on test environments.
Also please mention how you are testing 100 or 200 requests?, Which tools you using to send 100-200 requests?