i tried to do all the above suggestion and the performance is going well. in addition i discovered that i am using advanced symbols which are not liked by arcgis for server, after removing the advanced symbology the performance has been optimized.
thank you all.
Generally, whenever we use advanced symbols which are not created in ArcMap, we have them compressed to reduce the service load it helps out with the performance, additionally we have roll out all our service with all layers turned off as default and allow the user or the developer toggle (turn on/off) as per the request or requirement.
If you are consuming services in some custom application you can remove all the symbols and have the developer provide the symbols when they fire queries on the layer, that will make the service even more light weight. But this will completely depend on client requirement. Luckily, the same service for us is not being consumed by some other vendor so we do not have to worry with that else we need to assign the symbols in the service.
Besides this there are quite few parameters you can tweak to fine tune and improve the performance of the service.
Its a good read and things become more clear when you actually apply them in real time projects, I am sue you have already met these standards.