Articles of 过程

Linux上的许多php-fpm进程的开销?

我正在迁移使用PHP-FPM运行PHP应用程序的web服务器的configuration。 服务器上有大约40-50(并且增长)的虚拟主机。 该服务器是一个1GB RAM的单CPU虚拟机。 虽然这不是一个可以玩的资源,但我确实有很多这样的负载均衡器,他们宁愿横向扩展而不是垂直扩展。 以前的configuration使所有虚拟主机运行在同一个用户下运行的单个PHP-FPM池中。 最大的孩子是20左右,服务器似乎应付(它总的来说,每天大约10万点击 – 不是巨大的stream量)。 考虑到这些网站的隔离,我正在考虑转移到一个模型,其中每个虚拟主机都有自己的PHP-FPM池,在该网站的特定用户下运行,然后将该池根据虚拟主机的根目录进行chroot。 然而,即使在保守的游泳池儿童设置(初始= 2),闲置时也会产生近100个FPMstream程。 我的问题是:这是否会导致问题? 是否有任何固有的内存问题,旋转这么多的进程? 最后的奖金问题:任何ulimit暗示为php-fpm如果我去做这个方法?

将参数安全地传递给脚本

将parameter passing给分叉脚本的最好方法是什么? 例如, 通过命令行操作数传递参数是不安全的,因为在主机上有一个帐户的人可以运行ps并查看它们。 据我所知,不知名的pipe道是相当安全的,不是吗? 我的意思是,将parameter passing给分叉进程的STDIN 。 在环境variables中传递参数怎么样? 它安全吗? 通过其他方式传递参数,我没有提到呢?

Windows 2003/2008terminal服务器,应用程序使用95-100%的CPU时崩溃,自动杀死进程?

我们目前正在为我们的用户托pipe两台terminal服务器,通过Citrix Metaframe进行连接。 我们在那里托pipe的一个应用程序是一个很早以前编程的内部应用程序,特定于我们公司的仓库操作。 有时用户会在这个应用程序中运行查询,使应用程序崩溃,使其消耗95-100%的CPU。 然后用户可能会打开应用程序的第二个实体,只是在当天晚些时候才会崩溃。 我正在通过SNMP轮询监视服务器的CPU使用情况。 所以每当一个警报告诉我服务器负载很重,我手动login作为pipe理员来杀死坠毁的过程。 这大概每天发生2次。 terminal服务器变得残废,直到进程被终止(甚至需要2-3分钟login),严重影响所有其他用户。 有什么工具或程序,我可以执行,以帮助我呢? 我需要它来检查特定进程中的高CPU使用率。 如果为应用程序find高CPU,并在X时间内观察,请杀死它! (如果CPU使用率暂时boost,不能让它杀死应用程序)。 已经尝试了几个“自动杀死”工具,但没有发现任何可以针对特定的.exe文件的CPU随着时间的推移。

Word 2010创build多个进程…有时

当我将用户从Office 2007 / Vista迁移到Office 2010 / Windows 7(全部是32位)时,我遇到了一个奇怪的行为。 他们使用一个名为NetDocuments的基于Web的文档pipe理系统,它存储所有的.doc / .docx文件。 一般来说,当他们从浏览器窗口点击一个文档时,它会启动Word并打开文档。 Word中也有一个来自NetDocs的插件,因此它可以将更改后的文档直接上传到NetDocs服务器。 当Word崩溃时,我接到一个电话,每次它崩溃,我目睹了在任务pipe理器中运行多个winword.exe进程。 我使用进程资源pipe理器来查看创build进程的是什么,它是所有的Internet Explorer。 到目前为止,我已经把他们推回到IE8,问题发生的频率较低,但它仍然发生。 当我尝试复制问题时,如果我很快打开多个文档,我可以做到这一点。 使用闪电般的快速反应,我发现当用户点击一个文档时会创build第二个WinWord进程,然后一旦文档打开就会closures。 我想现在发生的事情是,做某种NetDocs巫术的辅助WinWord进程被卡住了。 这种行为是Word 2010 / Windows 7的新增function,谷歌search没有太多的东西。 我看过几个post,这是在某些情况下已知的问题,没有“修复”,但是我认为就此问问别人会好的。 也许有某种reg-hack会有帮助?

是否有可能从壳得到僵尸进程退出状态?

如果我在shell中执行'ps'命令,我可以得到一些标记为“'的进程 – 它们退出了,但父进程没有收到退出状态。 有时,在debuggingnetworking应用程序时,我需要从shell中获取这个进程的退出状态 – 是0还是一些错误代码,如分段错误? 是否有可能从壳得到这个退出状态给予PID ,或者只有僵尸的父进程可以得到这个退出状态? PS我不需要“杀”他们,“closures”他们等我只需要检查他们退出状态:)

我如何保留一个进程ID供以后使用?

我多次启动同一进程,并使用进程标识来区分它们以备将来的控制。 我将如何去取回刚刚开始的stream程的进程ID? 是否可以附加某种命令来启动该过程的命令?

如何让/ proc / / cmdline包含命令参数?

我遇到了一个问题,我的一些Ubuntu / Debian服务器不显示传递给rake顶部或ps的参数。 我已经把这个问题跟踪到了/ proc / [pid] / cmdline给出的输出变化。 这是似乎控制ps和top显示的文件。 在正确显示参数的服务器上,cmdline文件的内容类似于: ruby^@/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@log_file_tailer:run^@ 但是,在不显示rake参数的服务器上,cmdline的输出看起来像 /home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@ ^@^@^@^@^@ 也就是说,该文件的内容是两行,但不包含有关传递给rake的参数的任何信息。 FWIW,我有这两个服务器输出在较不有用的格式(缺乏参数)的cmdline正在运行 Linux版本2.6.32-5-amd64(Debian 2.6.32-46)([email protected])(gcc版本4.3.5(Debian 4.3.5-4))#1 SMP Sun Sep 23 10:07:46 UTC 2012 和 Linux版本3.2.0-23-generic(buildd @ crested)(gcc版本4.6.3(Ubuntu / Linaro 4.6.3-1ubuntu4))#36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 有趣的是,这些服务器似乎正确地显示完整的命令行,包括参数,我看到大多数命令,我看到排除耙子。 有谁知道我如何能得到完整的命令行,包括参数,输出到这些服务器上的cmdline? 我非常希望这不需要整个内核的重新编译(我有一点宝贵的经验)。 – 编辑 – 据推测,这是犁耙是负责设置/ proc / [pid] / cmdline的内容,但这并不嘲笑事实,我们正在运行相同版本的耙0.8.7)在服务器上,不会给我们由rake调用的命令行参数。

Debian的stream程像疯狂吃带宽…不去寻找它

我有一个很好的小型无头Debian机器安装程序,用于小型自动化任务。 但是前几天我注意到这个有一个很大的带宽RX,比预测的要多。 我开始iftop,但现在我只有现在到什么ip的带宽来自。 问题: 如何find哪个进程占用了这个debian机器上最多的带宽? 麦克风

一个公司的分布式计算? 有这样一个“自由”的东西吗?

我是整个分布式计算/云计算的新手。 但是,我有一个想法,就像电影编码/ cpu密集型的事情(有时需要几个小时)的多媒体工作。 有没有一种“免费”(linux?)的方式去使用Windows机器,并抵消这个任务的CPU周期,说10个服务器通常是空闲的(CPU明智的)? 我只是好奇,如果有办法做到这一点,或者我只是在这里抓秸秆。 我的想法是,一个“云”设置将实现这一点,但是就像我最初所说,我是一个总的新手谈到它。 这只是一个想法,寻找一些想法? 任何人都可以做到

无法杀死Windows 7中的进程

我正在运行Windows 7 x64。 偶尔我有一个冻结的过程,不能被杀死。 我已经尝试了以下内容: Process Explorer pskill taskkill / F / T 没有工作。 工具报告说,这个过程被成功杀死,但它只是停留在那里。 我如何杀死它? UPDATE 我现在知道,当一些应用程序试图连接到一个SQL Server并且SQL Server没有启动时,它总是发生。 应用程序总是冻结。 UPDATE 正如DougN所假定的,冻结过程的句柄数量确实是1.在过程资源pipe理器中,它显示了这一点 桌面\默认 不知道这是什么。 我无法closuresProcess Explorer中的这个句柄。 然后我search了包含对冻结进程的引用的其他进程。 在csrss.exe中find两个句柄。 closures他们。 然后,我试图再次closures冻结过程,但没有奏效。 更新我已经尝试了应用程序称为高级进程终止v4.2。 其中有12 + 2 + 2的方法来杀死顽固进程。 我已经尝试了所有的16个方法,而不是他们的工作。 我相信这是一个Windows 7的错误。 更新似乎这是这个问题的讨论: