+ -
当前位置:首页 → 问答吧 → 多线程的应用程序会引起vmstat 的kthr的r 值较大吗?

多线程的应用程序会引起vmstat 的kthr的r 值较大吗?

时间:2011-04-10

来源:互联网

多线程的应用程序会引起vmstat 的kthr的r 值较大吗?
有一台P615小机,单核1G内存,vmstat 显示kthr的r 为16,LCPU=1,
***:如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.;如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢.
但是该系统的cpu负载并不高,我觉得是别的原因引起的r 值过高,怀疑是多线程的应用程序会引起的,不知有没有这个可能?
和其它类似系统对比发现ps -emo的输出,该小机的两个多线程(12个线程)应用程序,其中的线程状态S大多是Sleeping,只有2,3个线程的S状态是running,我不知道处于Sleeping的线程会算在kthr的r 值里吗?而且WCHAN域有进程等待的事件(系统中的一个地址),是不是WCHAN域有进程等待的事件的线程才算进kthr的r 值里?

作者: mi_zy   发布时间: 2011-04-10

只有Sleeping的线程才可能有WCHAN,所以Sleeping的线程不算进kthr的r 值里的话,那WCHAN域有进程等待的事件的线程肯定不会算进kthr的r 值里了,看来第二个疑问不算疑问。

作者: mi_zy   发布时间: 2011-04-10



也可能我理解混了,等待队列和sleeping线程的关系没有搞明白!是不是sleeping线程是不会进等待队列的,只有running线程才可以进等待队列?

作者: mi_zy   发布时间: 2011-04-10

多线程的应用程序会引起vmstat 的kthr的r 值较大吗?
有一台P615小机,单核1G内存,vmstat 显示kthr的r 为16,LCPU=1,
***:如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.;如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢.
但是该系统的cpu负载并不高,我觉得是别的原因引起的r 值过高,怀疑是多线程的应用程序会引起的,不知有没有这个可能?
和其它类似系统对比发现ps -emo的输出,该小机的两个多线程(12个线程)应用程序,其中的线程状态S大多是Sleeping,只有2,3个线程的S状态是running,我不知道处于Sleeping的线程会算在kthr的r 值里吗?而且WCHAN域有进程等待的事件(系统中的一个地址),是不是WCHAN域有进程等待的事件的线程才算进kthr的r 值里?

作者: mi_zy   发布时间: 2011-04-10

只有Sleeping的线程才可能有WCHAN,所以Sleeping的线程不算进kthr的r 值里的话,那WCHAN域有进程等待的事件的线程肯定不会算进kthr的r 值里了,看来第二个疑问不算疑问。

作者: mi_zy   发布时间: 2011-04-10



也可能我理解混了,等待队列和sleeping线程的关系没有搞明白!是不是sleeping线程是不会进等待队列的,只有running线程才可以进等待队列?

作者: mi_zy   发布时间: 2011-04-10