我们的服务在客户的服务器上夜间经常进入睡眠状态,然后很难唤醒。似乎发生的情况是,进程堆栈(有时几百兆字节)被移动到交换文件中。这种情况通常发生在晚上,当我们的服务没有使用时,其他任务被调度(如数据库备份、杀毒扫描等)。这种情况发生后,服务在几个小时的不活动后,第一次调用需要几分钟(随后的调用只需几秒钟)。
我相信这是虚拟内存管理的问题,但我真的不想强制操作系统将我们的服务保留在物理内存中。我知道这样做会影响服务器上的其他进程,并降低整体服务器吞吐量。话虽如此,我们的客户只希望我们的应用程序能够快速响应。他们并不在意夜间作业所需的时间是否更长。
我模糊地记得有一种方法可以强制Windows将页面保留在物理内存中,但我真的不喜欢这个想法。我更倾向于使用一些内部或外部看门狗来启动更高级别的功能(已经有一些内部调度程序,但几乎没有任何作用)。如果有第三方工具提供这种服务,那就更好了。
我很乐意听取任何评论、建议和常见的解决方案。该服务是使用VC2005编写的,并在Windows服务器上运行。
我相信这是虚拟内存管理的问题,但我真的不想强制操作系统将我们的服务保留在物理内存中。我知道这样做会影响服务器上的其他进程,并降低整体服务器吞吐量。话虽如此,我们的客户只希望我们的应用程序能够快速响应。他们并不在意夜间作业所需的时间是否更长。
我模糊地记得有一种方法可以强制Windows将页面保留在物理内存中,但我真的不喜欢这个想法。我更倾向于使用一些内部或外部看门狗来启动更高级别的功能(已经有一些内部调度程序,但几乎没有任何作用)。如果有第三方工具提供这种服务,那就更好了。
我很乐意听取任何评论、建议和常见的解决方案。该服务是使用VC2005编写的,并在Windows服务器上运行。