标签: long-running-processes

计算一个庞大的c ++程序的运行时间

建议的估计时间的方法是使用clock()函数,然后将cpu周期的计数除以周期/秒.

我的问题是我试图运行的程序需要花费很多时间(以小时为单位).这意味着clock()函数(返回long int)返回一个垃圾值(因为max long int对此不够大)

任何建议(除了估计内部循环的时间和添加它们之外)?

long t1 = clock();
function();
long t2=clock();

time = ((double)t2 - t1) / CLOCKS_PER_SEC
Run Code Online (Sandbox Code Playgroud)

c++ performance long-running-processes

2
推荐指数
1
解决办法
3304
查看次数

SQL Server长时间运行查询需要数小时但使用低CPU

我在Windows Server 2012下的SQL Server 2012中运行一些存储过程,这些存储过程位于具有32 GB RAM和8个CPU内核的专用服务器中.CPU使用率始终低于10%,RAM使用率为80%,因为SQL Server分配了20 GB(32 GB).

有些存储过程在某些日子和其他日子需要4小时,几乎相同的数据需要7或8小时.

我使用限制性最小的隔离级别,所以我认为这不应该是一个锁定问题.数据库大小约为100 GB,最大的表有大约500万条记录.

这些进程具有批量插入,更新和删除(在某些情况下,我可以使用truncate来避免生成日志并节省一些时间).我在一个表中进行了一些全文搜索查询.

我完全控制了服务器,所以我可以更改任何配置参数.

我有几个问题:

  1. 是否可以使用并行性来提高查询的性能?
  2. 为什么CPU使用率如此之低?
  3. 配置SQL Server的最佳实践是什么?
  4. 审核服务器的最佳免费工具是什么?我尝试了一个名为SQL Server 2012 BPA的Microsoft,但该报告始终为空,没有任何警告.

编辑:我检查了日志,我发现了这个:

2015年3月18日11:09:25,spid26s,未知,SQL Server遇到82次发生的I/O请求需要超过15秒才能完成文件[C:\ Program Files\Microsoft SQL Server\MSSQL11数据库[tempdb](2)中的.HLSQLSERVER\MSSQL\DATA\templog.ldf].OS文件句柄为0x0000000000000BF8.最新的长I/O的偏移量为:0x00000001fe4000

sql-server server-configuration long-running-processes database-performance sql-server-2012

2
推荐指数
1
解决办法
7872
查看次数

耐用功能超时

我正在使用 Azure Durable Functions .Net Core。

[FunctionName("Calculate")]
public async Task RunOrchestrator(
    [OrchestrationTrigger] IDurableOrchestrationContext context, ILogger log)
{
    await context.CallActivityAsync<object>(FuncConstants.Cal1, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal2, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal3, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal4, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal5, null);   
    await context.CallActivityAsync<object>(FuncConstants.Cal6, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal7, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal8, null);
    await context.CallActivityAsync<object>(FuncConstants.Cal9, null);
}

[FunctionName("Starter_Calculation")]
public static async Task<HttpResponseMessage> HttpStart(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestMessage req,
    [DurableClient] IDurableOrchestrationClient starter,
    ILogger log)
{
    string instanceId = await starter.StartNewAsync("Calculate", null);
    return starter.CreateCheckStatusResponse(req, instanceId);
}
Run Code Online (Sandbox Code Playgroud)

这里,每个函数需要超过 5-6 个小时来执行一些逻辑计算(算术运算),因为它们处理超过 27-3000 万条数据库记录。

我收到第一个函数本身的错误为 "Timeout value …

timeoutexception long-running-processes azure-durable-functions

2
推荐指数
1
解决办法
4956
查看次数

如何一个接一个地运行一个程序

我正在运行许多程序(都是用fortran编写的).现在我正在运行一个程序,(./first)但我希望一旦完成另一个程序开始运行(./second),一旦其他程序完成,下一个程序开始(./third),依此类推.知道如何从终端做到这一点?谢谢!

linux terminal long-running-processes

1
推荐指数
1
解决办法
743
查看次数

长跑WF 4模式

我想要实现以下目标:

  1. 启动可能会长时间运行的工作流程,其中包括自定义活动;
  2. 这些自定义活动将遵循创建书签和等待其简历的模式;
  3. 返回已启动的工作流程ID并将其存储在某处;
  4. 在以后的某个时间点,从其存储的ID加载工作流程;
  5. 检查工作流程是否已完成,如果没有,请检查是否有任何被阻止的书签;
  6. 恢复这些书签,从而导致相关活动完成,最终导致完整的工作流程完成.

一个简单的用例是:用于审阅文档并批准或拒绝文档的工作流程.将为此创建工作流程,将通知个人,并且只要他们想要,他们就可以通过批准或拒绝审核来提供他们的反馈.

我以Andrew Zhu的代码为例,可以在http://xhinker.com/post/WF4.aspx上找到.

我遇到的问题是:

  1. 当使用我所描述的自定义活动时,在启动工作流时,WaitForRunnableInstance无限期等待,因此我从未收到通知我的工作流程已启动并持久保存到数据库;
  2. 确实存储了工作流,并将列BlockingBookmarks设置为我的自定义活动的id,ExecutionStatus设置为Idle,IsInitialized设置为1,IsSuspended设置为0,IsCompleted设置为0并IsReadyToRun设置为0.

我已经开始讨论微软论坛,可以在http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/6262874d-3493-4be1-bd05-b990307e1875/上看到并得到一些反馈,但有些事情仍然不对.

有什么想法吗?使用自定义活动的长时间运行工作流的任何有用模式?

谢谢!

.net .net-4.0 long-running-processes workflow-foundation-4

0
推荐指数
1
解决办法
1659
查看次数

带有进度通知的长时间运行的后台任务

我有一个 ASP.NET 网站,其中包含许多长时间运行(5 分钟到 2 小时)的用户启动的任务。我希望每个用户都能够看到自己作业的进度,并且能够关闭浏览器并稍后返回。

当前的计划是在每个作业启动时将其存储在数据库中,并将消息发布到 RabbitMQ 队列,Windows 服务将接收该消息并开始处理该作业。

但是,我不确定将进度信息从服务传递回网络服务器的最佳方法?我看到两个选择:

  • 将进度信息存储在数据库中,并通过网络应用程序对其进行轮询
  • 在网络服务器中有一个 RabbitMQ 消费者,并让 Windows 服务将进度消息发布到该队列

我倾向于第二种选择,因为我真的不想通过定期轮询/写入进度信息来增加数据库的更多开销。然而,有很多关于使用 RabbitMQ(作为消费者)的警告- 因为我没有发送重要消息(如果进度消息没有被处理也没关系),我想知道这是否重要?这并不是困难(著名的遗言)。

这个选项听起来合理吗?还有更好的选择吗?

architecture asp.net windows-services rabbitmq long-running-processes

0
推荐指数
1
解决办法
1505
查看次数

php.exe可以连续运行数周或数月的应用程序运行,而不会崩溃吗?

php.exe可以连续运行数周或数月的应用程序运行,而不会崩溃吗?

例如:UDP或HTTP/TCP服务器(或网络)应用程序.我听说它还没有为长时间运行的应用程序开发.我相信我们可以在linux和Windows中使用pthreads/events来进行多线程/并行,以支持为进程生成的负载并开发长时间运行的应用程序.但不确定会有多稳定.任何能够使用pthreads和长期运行的PHP应用程序发表评论并提供开发资源指导的人?

php networking events pthreads long-running-processes

0
推荐指数
1
解决办法
117
查看次数