`

必要时调整应用程序每个辅助进程的线程数

阅读更多
ASP.NET 的请求结构试图在执行请求的线程数和可用资源之间达到一种平衡。已知一个使用足够 CPU 功率的应用程序,该结构将根据可用于请求的 CPU 功率,来决定允许同时执行的请求数。这项技术称作线程门控。但是在某些条件下,线程门控算法不是很有效。通过使用与 ASP.NET Applications 性能对象关联的 Pipeline Instance Count 性能计数器,可以在 PerfMon 中监视线程门控。
  当页面调用外部资源,如数据库访问或 XML Web services 请求时,页面请求通常停止并释放 CPU。如果某个请求正在等待被处理,并且线程池中有一个线程是自由的,那么这个正在等待的请求将开始被处理。遗憾的是,有时这可能导致 Web 服务器上存在大量同时处理的请求和许多正在等待的线程,而它们对服务器性能有不利影响。通常,如果门控因子是外部资源的响应时间,则让过多请求等待资源,对 Web 服务器的吞吐量并无帮助。

  为缓和这种情况,可以通过更改 Machine.config 配置文件 <processModel> 节点的 maxWorkerThreads 和 maxIOThreads 属性,手动设置进程中的线程数限制。

  注意 辅助线程是用来处理 ASP.NET 请求的,而 IO 线程则是用于为来自文件、数据库或 XML Web services 的数据提供服务的。
  分配给这些属性的值是进程中每个 CPU 每类线程的最大数目。对于双处理器计算机,最大数是设置值的两倍。对于四处理器计算机,最大值是设置值的四倍。无论如何,对于有四个或八个 CPU 的计算机,最好更改默认值。对于有一个或两个处理器的计算机,默认值就可以,但对于有更多处理器的计算机的性能,进程中有一百或两百个线程则弊大于利。

  注意 进程中有太多线程往往会降低服务器的速度,因为额外的上下文交换导致操作系统将 CPU 周期花在维护线程而不是处理请求上。

分享到:
评论

相关推荐

    线程及线程应用总结

    - 主线程:每个Java应用程序都有一个主线程,它是程序的入口点。 - 新建线程:通过`new Thread()`实例化线程对象或`new Thread(new Runnable())`传递Runnable对象。 - 启动线程:调用`start()`方法,执行`run()`...

    Desktop\Spy++ 查看Win操作系统的窗口、消息、进程、线程信息的工具

    用户可以查看每个进程的ID、基础优先级、创建时间等信息,以及线程的ID、状态、CPU使用率等。这对于诊断资源消耗问题和线程同步问题是很有帮助的。 4. **附加文件解析**: - `spyxx.chm` 是Spy++的联机帮助文件,...

    OZQR.rar_进程与线程

    进程是操作系统中独立运行的执行单元,每个进程都有自己的内存空间,而线程是进程内的执行流,多个线程可以在同一个进程中并发执行,共享进程的资源。理解这两个概念对于编写多任务或高并发的应用至关重要。 在这个...

    进程&线程&虚拟内存

    每个线程被分配一定的处理器时间,线程在进程的地址空间内独立执行。在Windows内核中,线程表示为ETHREAD块,其中包含了KTHREAD结构,用于记录线程执行的上下文。线程对象也包含了线程ID、线程环境块(TEB)、用户...

    进程控制 如何通过程序控制系统进程

    每个进程都有一个唯一的进程ID(PID),并且可以包含一个或多个线程。线程是进程内部执行的基本单元,可以在同一进程中并行执行。 在Windows操作系统中,我们可以使用System.Diagnostics命名空间下的类来管理进程。...

    如何让程序自动管理线程

    如果数据仅与特定线程相关,可以使用线程局部存储(TLS)来存储每个线程特有的数据,避免了线程间的冲突。 6. **管道和套接字**: 对于更复杂的通信场景,如跨进程通信,可以考虑使用管道或套接字等高级通信机制...

    线程进程查看器.rar_进程查看

    2. **线程分析**:用户可以通过该工具深入到进程内部,查看每个进程包含的线程数量,以及各线程的状态(如就绪、运行、等待等)。这有助于了解进程是如何分配资源和执行任务的。 3. **资源占用详情**:除了基础信息...

    nases.rar_The Program_loosedhx_进程与线程

    每个进程都有独立的地址空间,保证了不同进程间的数据隔离。在"The Program_loosedhx"中,进程可能包含了记录键盘事件的主程序以及可能的辅助服务程序。 然后,我们来看看线程。线程是进程内部的执行单元,它们共享...

    chapter11 多线程程序设计.pdf

    每个进程都有自己的内存空间和系统资源,可以看作是程序在系统中的一次执行过程。而线程则是进程中的单个顺序控制流,是进程中的一个实体,代表了进程中的一条执行路径,是CPU调度和分派的基本单位。线程自己不拥有...

    三种排序方法比较的演示程序——Borland C++ Builder中的多线程应用

    ### 三种排序方法比较的演示程序——Borland C++ Builder中的多线程应用 #### 摘要 本文介绍了一款由教师开发的教学辅助工具,该工具利用Borland C++ Builder平台实现了三种基本排序算法(冒泡排序、选择排序、...

    湖北多线程查余额辅助v2.0

    3. 解耦任务:将任务分解为多个线程,使得每个线程专注一项任务,有利于代码维护和扩展。 四、安全与稳定性 尽管多线程带来了效率提升,但同时也引入了线程安全问题,如数据竞争和死锁。在“湖北多线程查余额辅助v...

    多线程编程的入门教程

    每个进程可以包含一个或多个线程,其中至少有一个线程(主执行线程)是系统自动创建的。多个线程共享同一个进程的资源,使得线程间的通信(IPC)变得相对容易。 3. 并行处理和CPU时间分配: 文档指出,多线程通过...

    408计算机统考_操作系统—进程与线程思维导图

    操作系统中的进程与线程是并发执行的基础,它们在...每个进程有自己的独立资源,而线程共享资源;进程是资源分配的单位,线程是处理机调度的单位。理解这些基本概念和区别对于深入学习操作系统和进行考研准备至关重要。

    浅析linux环境下一个进程最多能有多少个线程

    首先,默认情况下,Linux进程(包括主线程和一个辅助线程)最多可以有255个线程,其中用户自己可以创建的线程数量为253个。这个限制来源于系统对文件描述符(file descriptor)的限制,因为每个线程都需要一定数量的...

    多线程串口通信技术及应用.pdf

    在Windows系统中,多线程是基于线程的多任务处理方式,每个Win32程序运行在独立的进程中,拥有独立的地址空间,这极大地提高了系统的稳定性和资源管理效率。 在多线程串口通信中,主线程通常负责初始化和管理,而...

    3-3、认识进程与线程(网络编程)学习PPT

    * 每个进程之间相互独立,互不影响。 * 进程的概念包括CPU时间片、时间片切换、优先调度算法等。 2. 多进程实现: * 使用多进程来分担耗时任务,在另一个进程中运行耗时任务。 * 主进程不会受到影响,当子进程执行...

    简易任务管理器(附带源码)可枚举、关闭进程、句柄、线程等

    进程是程序执行时的一个实例,每个进程都有自己的内存空间和执行上下文。在某些情况下,我们可能需要强制结束某个无响应或者占用过多资源的进程,这就是“关闭进程”的作用。简易任务管理器允许用户选择并终止特定的...

    Java多线程详细讲义.docx

    在计算机科学中,一个进程是一个应用程序,每个进程都有独立的内存空间。同一个进程中的线程共享其进程中的内存和资源。线程是进程的一个执行场景,也就是执行流程。 1.2 进程的概念 一个进程就是一个应用程序。在...

    VB 双进程 保护 源码

    2. **主进程与辅助进程**:主进程通常包含应用程序的主要逻辑,而辅助进程则作为一个守护者,确保主进程的正常运行,例如,它可以监控主进程的异常、防止非法篡改等。 3. **通信机制**:在VB中,两个进程之间的通信...

Global site tag (gtag.js) - Google Analytics