Windows 服务性能与命令行性能

Windows 服务性能与命令行性能,windows,service,command,kernel,Windows,Service,Command,Kernel,我有一个64位应用程序(控制台应用程序),我从命令行运行,没有问题 也是一个64位服务应用程序,它通过CreateProcess简单地启动上述控制台应用程序,并且运行良好 如果调度程序服务创建作业,它将比我停止调度程序并决定通过命令行手动运行作业时运行得慢得多。2-3倍以上。在我的测试中,服务应用程序需要10分钟。命令行需要3-4分钟。这是一致的;而且它们的工作负载和性能是相同的 我尝试将服务更改为与从命令行运行它的帐户相同的帐户运行。。同样的问题 一些可以从可能原因列表中安全删除的内容 这是

我有一个64位应用程序(控制台应用程序),我从命令行运行,没有问题

也是一个64位服务应用程序,它通过CreateProcess简单地启动上述控制台应用程序,并且运行良好

如果调度程序服务创建作业,它将比我停止调度程序并决定通过命令行手动运行作业时运行得慢得多。2-3倍以上。在我的测试中,服务应用程序需要10分钟。命令行需要3-4分钟。这是一致的;而且它们的工作负载和性能是相同的

我尝试将服务更改为与从命令行运行它的帐户相同的帐户运行。。同样的问题

一些可以从可能原因列表中安全删除的内容

  • 这是我能得到的最接近苹果的东西了。。每次作业都执行相同的工作
  • 该系统拥有大量资源
  • 成吨的CPU容量、内存、IO、IO速度(SSD)、分页等
  • 这项服务本身只有10毫克,实际上除了每隔30秒醒来并启动这项工作外,什么也不做。我甚至试着把它作为一个任务放在任务调度器下。。同样的问题
我注意到,当我通过任务管理器的“性能”选项卡查看正在执行的作业时。。我将“内核时间”(查看、显示内核时间)添加到CPU实时图表中

当我通过服务查看此运行时;内核时间(红色)显示为CPU总使用时间的80-90%。 当我在命令行上查看此运行时,没有此类问题;内核时间大约为3到5%

我不知下一步该往哪里看。这是什么原因造成的


任何指导、建议、帮助都是非常值得赞赏的。

你应该考虑把你的问题修剪得更清楚、更简洁。很多人看到一堵文字墙时的反应很简单。谢谢,我删掉了一些背景/评论,并试图坚持相关的观点(至少我希望如此)。很可能应用程序在服务会话中无意中做了一些不合法的事情,并且没有正确处理错误情况。例如,它可能试图写入stdout或stderr。我认为在服务会话中运行控制台应用程序时,可以将调试器附加到该应用程序。在这样的CPU使用率下,您很有可能在正确的时间点进入它。(如果它是一个线程应用程序,首先确定固定CPU的线程,以便知道要检查哪个线程。)谢谢。从那以后,我就在OCI内部为甲骨文找到了一些线索。有一个表(35+字段)导致服务性能严重下降。如果我只是删除了很多这些字段,那么调度程序的性能就与命令行相关联。我还在检查,因为我没有答案,只是一个原因。