经典的asp - 长时间运行的流程。这个坏的原因是什么?

时间:2012-02-17 11:45:56

标签: performance asp-classic resources timeout

我继承了一个非常古老的经典ASP脚本,用于向大约5,000到10,000个收件人发送电子邮件,批量生成几百个。它位于具有高流量网站的专用服务器上。

邮件脚本的server.scripttimeout属性设置为10分钟,整个邮件列表在内存中加载到scripting.dictionary,用于执行电子邮件验证和重复删除。

这个脚本可能会被10到20个人同时使用,每个人最多可以发送10个邮件。

我觉得这对服务器来说不是好事,有可能同时发生这么多长时间运行的流程,但不能引用技术原因。这会导致线程被阻塞或内存消耗问题吗?这可能会破坏对网站的服务吗?

任何人都可以提出任何技术原因,为什么这不是一个好主意?我觉得这个脚本应该用邮件服务器替换,但是,我需要技术上的原因才能引用它。

赞赏的任何输入。

最佳, 千斤顶


修改

具体来说,我想每次运行这个脚本时,来自ASP线程池的线程都会忙着进行邮件发送。

根据http://www.iis.net/ConfigReference/system.webServer/asp/limits,processorThreadMax属性:

  

“processorThreadMax属性指定最大数量   IIS可能创建的每个处理器的工作线程。

     

注意:此设置可以显着影响您的可扩展性   Web应用程序和服务器的性能一般。   因为此属性定义了最大的ASP请求数   可以同时执行,此设置应保持默认值   除非您的ASP应用程序正在进行扩展调用   外部组件。“

假设一个处理器服务器,默认配置此值(25个线程)我是否正确地说,如果20个并发用户同时执行了邮件,那么只有5个线程可用于服务该网站?

如果我是正确的,那么我认为这个理由足以证明这种方法不可持续,应该用更持久的东西代替。

任何人都可以确认我是否正确吗?

1 个答案:

答案 0 :(得分:1)

要考虑的几个原因:

如果您在网站维护期间重新启动IIS服务/应用程序池,该怎么办?

如果您的邮件会消耗大量资源怎么办?

如果某个其他页面会消耗大量资源(阻止邮件程序正常工作)会怎样?

PS:你现在如何运行脚本?如果您通过浏览器中的特定页面进行操作,则还应考虑维护原因:浏览器可能会超时取消请求,尽管您可以解决出现的各种问题(IIS取消脚本执行,不方便的日志记录),它仍然增加了一堆缺点。