Archived

This forum has been archived. Please start a new discussion on GitHub.

how to reduce the system cpu in the ice service?

Hi,
I am a frequently Ice-3.20 user, i wrote a simple Ice service and did responding presure test,when I find the CPU occupation is very high, with my operation of Windows 2003 Server.

how to reduce the system cpu in the ice service?

long for your instruction and a thousand thanks.

best regards,

Comments

  • matthew
    matthew NL, Canada
    I don't really understand the question. The simple answer is to reduce the CPU load do less work :) I realize that this isn't all that helpful, but to give a better answer I need to know more about what your service is exactly doing, and why you expect the CPU load to be low.
  • Hi,
    When increasing the pressure ,I found that the CPU load by the Windows system process csrss.exe was increasing too.
    Does the ice service invoke the csrss.exe?

    Thank you very much!
  • matthew
    matthew NL, Canada
    csrss.exe is part of Windows and is responsible for the DOS subsystem, running console windows and creating/destroying threads therefore if you are destroying and creating lots of threads, or generating loads of console output then I would expect this process to consume lots of CPU.

    Perhaps you are using an unsuitable concurrency model for these tests? What concurrency model & other associated configuration are you using in your server and client? The easiest way, as always, to help you with this problem is for you to send us a small self-contained application that demonstrates this problem.
  • Hi matthew,

    the ice file:
    #ifndef _H_TEST_H_
    #define _H_TEST_H_
    
    module VGProxy
    {
     struct  MGEvent
      {
        int ResID;           
        int CallID;         
        int EventID;      
        int Reason;         
        string DTMFString;   
      };
    
      struct  SGEvent
      {
        int ResID;         
        int CallID;       
        int EventID;      
        int EventData;       
        string CallerID;     
        string CalledID;    
        string OriCallerID;  
        string OriCalledID; 
        string rfu;          
      };
      
    
      interface VGService
      {
         int mgPlayVoice(int nResID,int nCallID,string szFileName,string szInteruptKeys,int nRate,int nBeginTime);
         int sgAnswerCall(int nResID,int nCallID);
         int sgReleaseCall(int nResID,int nCallID);
         int GetMgEvt(int nTimeout, out MGEvent event);
         int GetSgEvt(int nTimeout, out SGEvent event);
      };
    };
    
    #endif
    

    The ice client invoked the ice server by ice interface,the ice server invoked another RPC server by RPC interface.
    The ice server and the rpc server were in the same PC,the ice client was in the other PC.

    The ice client did these operations: answer a call,play a voice file, release the call,meanwhile receive the events.

    when I increasing the presure , the cpu load of the ice server was higher than that of the RPC server.
    How to reduce the cpu load of the ice server?

    Thank you very much!
  • matthew
    matthew NL, Canada
    If you are not generating lots of console output then I suspect the issue is that your server is busy creating loads of threads so the question is why. What concurrency model is your server using? How is the Ice server calling on the other server?
  • Hi matthew,

    I maybe resolved the problem. By releasing the console output, the cpu load reduced.


    Thanks a lot for your helps,

    Best regards,
    __________________