用它解决大问题啦,STRACE应用

脚本是沙沙,辉哥和我在去年解决一个PHP时弄出来的。。。强!

简单而实用。

抓到的TRC文件放在TRC目录下。

如果有异常的进程或输出,可以在里面详细的分析。。

#!/bin/bash

mkdir trc
rm -rf trc/*.trc

additional_strace_args="$1"

MASTER_PID=$(ps auwx | grep php-fpm | grep -v grep | grep ‘master process‘  | cut -d ‘ ‘ -f 7)

summarise=""
#shows total of calls - comment in to get
#summarise="-c"

nohup strace  -r $summarise -p $MASTER_PID -ff -o ./trc/master.follow.trc >"trc/master.$MASTER_PID.trc" 2>&1 &

while read -r pid;
do
    if [[ $pid != $MASTER_PID ]]; then
        #shows total of calls
        nohup strace -s 1024 -r -Tt $summarise -p "$pid" $additional_strace_args >"trc/$pid.trc" 2>&1 &
    fi
done < <(pgrep php-fpm)

read -p "Strace running - press [Enter] to stop"

pkill strace
时间: 2024-10-05 04:46:03

用它解决大问题啦,STRACE应用的相关文章

第六章.解决大问题

用解决小问题的相同方式解决大问题. 1.确认你的软件做客户要它做的事 2.运用基本的OO原则来增加软件的灵活性 3.努力实现可维护.可重用的设计 看待大问题的最佳方式就是化整为零,将它视为许多单独的功能片段(pieces of functionality) 你可以将那些片段的每一个创建为要解决的单独问题,并且运用你已经知道的每一件事 可以将大问题分解成许多功能片段,接着解释单独解决每个片段 看几个原则: 1.封装(encapsulation)的使用有助于大问题的解决.封装的内容越多,就越容易将大

断电重启交换机解决大问题

处理网络问题时,偶尔会遇到一条命令下去交换机没响应了,或者其它意外情况发现网络不通,此时连接此交换机的终端或者服务器就没法访问了,断电重启交换机将是救命稻草,这里记录下3次经历.1.同事在机房调试网络RSTP,不知道敲了啥命令瞬间网络无法访问,大家突然蒙了不知道怎么办,技术哥头脑清醒立刻断电重启交换机,几分钟后网络恢复正常.2.在一次处理电商办公室网络时,当时没搞清楚接入交换机上联口的端口复用情况,判断问题是要启用电口可解决问题,没想到命令一敲立马断网了,当时经验不足就傻眼了,赶紧向峰哥电话求助

数据库大师成长日记:巧用SQL语句,小技巧解决大问题!

朋友们,我们在写SQL脚本的时候,可能一些看起来不起眼的小问题.却让我们非常头疼.比如我们要写一个备份数据库的脚本,如果我们对服务器的硬盘分区和使用情况很了解,备份当然没有问题,但如果我们不知道服务器硬盘如何分区.每个分区还有多少空间可用的情况下,您写的备份语句可能就不好执行了. 下面,我就日常我们可能会碰到的一些"大问题",通过简单的SQL脚本进行实现. 查看硬盘分区与可用空间 这个通过调用master数据库下面的存储过程xp_fixeddrives很容易实现. EXEC maste

html中通过移除空格的方法来解决浏览器上的留白间距该怎么理解?

今天在切图的时候,碰到一个兼容性的问题,很幸运最后通过张金鑫老师的文章解决了这个问题!但在阅读张老师文章的时候,我有个地方不明白,在网上查了下也没找到我想要的答案,后来自己想了半天好像是这么回事,现在我把我的想法写出来,如果有不对的地方,大家一定要指出哦. 如图(事例1): 这是张老师文章中的一段事例代码,代码的结构是一个div包括着3个a元素,每个a元素之间都是各占一行,所以显示在浏览器上时,a元素之间会有一个间隙,如图: 那么问题来了!将代码改成这样,如图(事例2): 最后的结果是这样的,如

Java路径问题终于解决方式—可定位全部资源的相对路径寻址

1.在Java项目中,应该通过绝对路径訪问文件.下面为訪问的经常用法: 第一种方法:类名.class.getResource("/").getPath()+文件名称 另外一种方法:Thread.currentThread().getContextClassLoader().getResource("").getPath()+文件名称[主要使用] 如果文件夹结构例如以下 如今src文件夹下的类文件须要訪问config文件夹下的配置文件. 2.使用第一种方法 new F

IFRAME跨域名的解决方法,终结版(小张.NET原创)[摘自 西部数码]

以前碰到此类问题很郁闷,MS为什么开发出这么个鸟IE,让这些人不得不跟着他走,后来想了想,也是,为了安全期间,还是要加上限制的,要不,别人可以随便的改你的网页内容,等等...好了,其它的废话不说了,看看下边的吧:记得要将域名指为域名,而不是WWW或者其它的,例:shagndu8.com 而不能指向www.shangdu8.com 1.请在父网页上加上以下代码:1<SCRIPT LANGUAGE="VBScript">2    document.domain = "

使用ls / 命令卡死,或者df -h 查看卡死解决办法

问题: 今天公司一台服务器 执行 ls / 命令时,系统卡死, ctrl+c 也不能结束,如下: [email protected]/23 # ls / ^C 此问题一般都是因为mount 对端服务失效,本地目录卡死造成 解决思路: 1. strace 命令跟踪,定位问题 首先使用 命令跟踪, 查看执行到哪一步卡死: [email protected]/26 # strace ls / .... ... .. lgetxattr("/MegaSAS.log", "system

三、二叉树

一.递归思想:递归的基本思想是把规模大的问题转化为规模小的相似的子问题来解决.在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况.另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了.(http://www.nowamagic.net/librarys/veda/detail/2314) 1)遍历:结果在调用时作为参数传递:从顶到下的过程 2)分治:结果在返回值里,不在调用中作为参数传递,从下到上(有递.无归) 同:递归思

PHP学习笔记A

//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH变量名建议用下划线方式分隔 // $var_name函数名建议用驼峰命名法 // varName定界符建议全大写 // <<<DING, <<<'DING'文件名建议全小写和下划线.数字 // func_name.php私有属性名.方法名建议加下划线 // private $_name