CPU并发计算

来源:互联网 发布:sugarnms网络管理下载 编辑:程序博客网 时间:2024/05/22 06:12

一、一些概念

1、进程

多执行流的一般实现便是进程。多进程的好处不仅仅在于CPU时间的轮流使用,还在于对CPU计算和I/O操作进行了很好的重叠利用。

进程的创建使用fork()系统调用。

2、轻量级进程

采用大量进程的Web服务器在处理大量并发请求时,内存的大量消耗有时会成为性能提升的制约因素。在Linux 2.0后,提供了对轻量级线程的支持,它由一个新的系统调用clone()来创建,这些进程已经允许共享一些资源。但是其上下文切换开销在所难免。

3、线程

POSIX 为Linux定义了线程的接口 pthread,第一种是在用户空间实现;另一种实现是LinuxThreads,它是内核级的线程库,通过clone创建线程,实质是将线程和轻量级线程进行一对一关联。

4、进程调度器

内核中的进程调度器(Scheduler)维护着各种状态的进程队列,在Linux中,进程调度器维护着一个包括所有可运行进程的队列,称为”运行队列(Run Quere)“以及一个包括所有休眠进程和僵尸进程的列表。

可以使用Linux中top查看进程的优先级和动态调整。PR代表进程调度器分配给进程的时间片长度,单位是时钟个数。

二、系统负载

    为了了解运行队列情况,可以通过查看/proc/loadavg,结果如

1.63   0.48   0.21   10/200   17145

前三数值分别代表系统最近1分钟、5分钟和15分钟的系统负载,而系统负载定位为单位时间内运行队列中就绪等待的进程数的平均值。10/200其中10代表此时运行队列中的进程个数,而200代表此时的进程总数。

    也可以通过top 或者 w 查看系统负载。

三、进程切换

Nmon工具可以监视服务器每秒上下文切换次数。ContextSwitch:28.4

四、IOWait

它是指CPU空闲并且等待I/O操作完成的时间比例,用于衡量CPU使用率。


0 0
原创粉丝点击