uptime命令报告的负载平均值也显示在top提供平均运行队列长度(1,5和15分钟) 运行队列长度是当前正在运行的线程(任务)数量与等待(排队)运行的数量之和。 run-queue length = tasks running + tasks waiting (for cores) + tasks blocked 阻塞任务的最常见原因之一是慢速/繁忙磁盘。 当进程处于不间断磁盘睡眠/等待状态时, ps aux的状态字段(STAT)会给出“D”。 但是,当进程被阻塞时,可能还有其他的情况。 问题 有什么办法可以获得关于cpu运行队列的特定组件的更详细的信息。 例如,打破的列表:任务运行+任务等待(核心)+任务被阻止? ps中的状态字段以外的其他实用程序可用于确定哪些任务被阻止? 忙磁盘以外的其他条件会导致任务被阻塞,应该使用哪些实用程序来确定这些条件是否存在? 谢谢!
当我通过shell启动一个java程序时,一切正常。 但是,如果我用同一个命令和同一个用户通过CRON启动相同的程序,我会在几秒钟后得到一个java.lang.OutOfMemoryError。 另外,只要我不杀死被阻塞的java程序,CRON就不能做任何事情。 无论哪个cronjob应该启动,它总是以syslog中的“(CRON)错误(无法分叉)”结束。 杀死Java程序后,所有新的cronjobs再次正常工作。 java程序创build了许multithreading(启动时为1500,之后更多),而且当由crontab启动时,它始终在创build475个线程后开始挂起。 所以也许它更像“OutOfThreads”甚至OutOfMemorylogging。 为了testing的目的,我把初始线程的数目减less到了450,并且这个设置在一些分钟内工作正常(直到更多的线程被创build)。 然而,我真的需要这些1500+线程,我不知道为什么这是不可能的,当java程序已经由crontab启动。 如前所述,只要我通过shell启动程序,而不是通过crontab启动程序,一切正常。 这个问题只发生在Ubuntu 16.04上,所有旧版本都运行得很好。 这是一个错误还是一个新的安全function? 我没有find任何有关这个问题的信息,所以我希望任何人都可以帮忙。
我试图使用戴尔Poweredge R900作为一个计算池我得到了二手(4x四核给我16核心运行模拟)。 它现在正在运行Windows Server 2008 R2企业。 我正在运行自定义.net代码,并可以指定线程的数量是我想要的任何东西。 通常(例如,在我的Windows 10 quadcore机器),一个线程轨道CPU核心10分钟左右。 如果我在我的服务器上启动7个线程(例如),我看到我的16个内核中的7个以20%的利用率点亮。 如果我启动16个线程,我看到所有16个核心在〜20%。 所以我试图烧掉48个线程,期望我的16个内核现在应该有3个线程,因此达到60%的利用率,但没有骰子。 我再次得到20%(每个线程明显慢了3倍,所以每个内核的所有3个线程得到处理)。 无论我发射多less线程,我的使用率都不会超过每核心20%。 现在,如果我以每个16+线程启动我的代码的两个实例,则所有内核都将达到40%。 三分之一,60%。 所以这不是FSB限制或任何东西。 有些东西必须将每个实例的内核压缩到每个核心20%。 我不能为了我的生活找出瓶颈在哪里。 这是一个Windows服务器的东西? 一个戴尔BIOS的东西? 我已经将操作系统从后台进程优化翻转到针对程序优化…似乎没有影响。 我是全新的Windows服务器,所以任何想法将不胜感激!
我已经安装了Apache,并且工人mpm似乎有很多进程活动,尽pipeconfiguration已经到位。 我将详细介绍下面的configuration: StartServers 2 MinSpareThreads 10 MaxSpareThreads 25 ThreadsPerChild 25 MaxClients 150 基于这些设置,我们应该看到最多1个Apache控制进程(uid:root)和6个Apache客户端进程(uid:www)。 这是由于MaxClients / ThreadsPerChild。 但是,我看到共有1个Apache控制进程和9个Apache客户端进程。 在里面 – apache2(root) – – apache2(www) – – apache2(www) – 1个线程 – – apache2(www) – 26个线程 – – apache2(www) – 26个线程 在里面 – apache2(www) – 2个线程 – apache2(www) – apache2(www) – apache2(www) 我们不会重新启动Apache和服务器,并且每次都会重新加载2-3次,以增加新的VHOST。 任何人都可以启发我什么可能造成这一点? enter code here
我如何更改Linux上的内存分配策略? 在Solaris上,它是通过lgrp_mem_default_policy ( 手册页 )在系统范围内完成的, pmadvise ( 手册页 )是每个进程的等同物,不需要root。
如果我运行该命令 time perl -e 'use threads; $T=12 ; foreach (1..$T) { $thr[$i++] = threads->create(sub { printf "I am thread %s\n", threads->tid(); foreach (1..9e6) { push(@a, sqrt(1234)/sin(1234)*cos(1234)) } ; printf "thread %s finished.\n", threads->tid(); }); } foreach (0..$T-1) { $thr[$_]->join(); }' 我看2.6.37比2.6.34 慢了80% 。 该命令刚刚开始计算sqrt(1234)/ sin(1234)* cos(1234)9.000.000次的12个线程,并等待所有线程完成。 我使用双核Xeon X5650 @ 2.67GHz(带HT的6个内核)以及24 GB内存,openSUSE 11.3,kernel 2.6.34.7-0.5-default和kernel-default-2.6.37-6.1从http:// download .opensuse.org […]
我们正在使用新的监视器来监视tomcat线程。 该图显示了线程数的增加,但即使应用程序闲置也不会减less。 我们注意到,当它增加CPU也增加了,并且当应用程序空闲时CPU减less了。 但是tomcat线程不会减less。 预计或如何使线程数?
我已经和Apache合作了8年多了,但现在我面临严重的问题,到目前为止我还找不到互联网上的解决scheme。 我在带有Service Pack 1的Windows 2008 R2 64位上运行Apache 2.2.15 32位。我总是使用32位Apache,因为我的CGI代码(exe文件)是32位。 电脑有一个3.10 GHz的处理器和16GB的RAM。 服务器负载总是非常低。 访问日志显示问题发生时的正常请求量。 自从几个月前的安装以来,一切正常,但现在我的Apache停止工作,我不知道如何解决这个问题。 几周之后,我没有改变任何configuration,但突然Apache停止服务的HTTP响应。 所有请求都会超时。 从实际意义上讲,我的网站是离线的。 通过使用Windows事件查看器,当Apache停止工作时,我发现了一个错误日志。 这是错误事件: Log Name: Application Source: Application Error Date: 6/28/2016 8:08:33 PM Event ID: 1000 Task Category: (100) Level: Error Keywords: Classic User: N/A Computer: PictureToPeople Description: Faulting application name: httpd.exe, version: 2.2.15.0, time stamp: 0x4b8fed95 Faulting module […]
我如何给非root用户权限执行pthread_setschedparam()来设置线程优先级? 谢谢
我的印象是,是的,这就是为什么mod_php商店运行它(通常为非线程安全的应用程序)。 在我的Ubuntu机器上,如果我运行 sudo ps axo pid,ppid,rss,vsz,nlwp,cmd 我得到这个: 32305 1 9820 183732 1 /usr/sbin/apache2 -k start 32318 32305 7172 183732 1 /usr/sbin/apache2 -k start nlwp会build议Apache作为一个单线程应用程序运行,或者我错过了什么? 另外 – 这是否意味着所有的Apache模块将作为单线程运行在这些Apache进程? 父进程的单线程性质是否基本上迫使这些模块充当单线程? 谢谢