一、strace命令常用参数

strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s  -p
-tt 在每行输出的前面,显示毫秒级别的时间
-T 显示每次系统调用所花费的时间
-v 对于某些相关调用,把完整的环境变量,文件stat结构等打出来。
-f 跟踪目标进程,以及目标进程创建的所有子进程
-e 控制要跟踪的事件和跟踪行为,比如指定要跟踪的系统调用名称
-o 把strace的输出单独写到指定的文件
-s 当系统调用的某个参数是字符串时,最多输出指定长度的内容,默认是32个字节
-p 指定要跟踪的进程pid, 要同时跟踪多个pid, 重复多次-p选项即可。

二、执行nginx -t 或者nginx -s reload特别慢

# strace -o nginx_run_time.txt -t nginx -t 

# 发现问题22秒到27秒之间,Timeout了5秒,此时间段内DNS解析出现了问题,上面为联通的DNS地址。
:: socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) =
:: connect(, {sa_family=AF_INET, sin_port=htons(), sin_addr=inet_addr("202.106.0.20")}, ) =
:: poll([{fd=, events=POLLOUT}], , ) = ([{fd=, revents=POLLOUT}])
:: sendto(, "\305\367\1\0\0\1\0\0\0\0\0\0\7payment\10linz\3co"..., , MSG_NOSIGNAL, NULL, ) =
:: poll([{fd=, events=POLLIN|POLLOUT}], , ) = ([{fd=, revents=POLLOUT}])
:: sendto(, "\263\312\1\0\0\1\0\0\0\0\0\0\7payment\10linz\3co"..., , MSG_NOSIGNAL, NULL, ) =
:: poll([{fd=, events=POLLIN}], , ) = (Timeout)
:: socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) =
:: connect(, {sa_family=AF_INET, sin_port=htons(), sin_addr=inet_addr("114.114.114.114")}, ) =
:: poll([{fd=, events=POLLOUT}], , ) = ([{fd=, revents=POLLOUT}])
:: sendto(, "\305\367\1\0\0\1\0\0\0\0\0\0\7payment\10linz\3co"..., , MSG_NOSIGNAL, NULL, ) =
:: poll([{fd=, events=POLLIN|POLLOUT}], , ) = ([{fd=, revents=POLLOUT}])
:: sendto(, "\263\312\1\0\0\1\0\0\0\0\0\0\7payment\10linz\3co"..., , MSG_NOSIGNAL, NULL, ) =
:: poll([{fd=, events=POLLIN}], , ) = ([{fd=, revents=POLLIN}]) # 解决方法,注释掉202.106.0.20的nameserver或者修改本地的/etc/hosts把解析时间长的域名添加进去。
# cat /etc/resolv.conf
nameserver 202.106.0.20
nameserver 114.114.114.114

使用nginx很卡之strace命令的更多相关文章

  1. strace命令跟踪进程

    在实际系统维护过程中,常常需要知道一个进程在做哪些动作,比如想判断一个进程是否hang,我们可以使用strace命令,此命令式用来跟踪一个进程在调用哪些系统函数和信号 通过跟踪xinetd进程演示st ...

  2. [转帖]强大的strace命令用法详解

    强大的strace命令用法详解 文章转自: https://www.linuxidc.com/Linux/2018-01/150654.htm strace是什么? 按照strace官网的描述, st ...

  3. strace命令(收集整理,常看常新)

    starce的用途和参数:http://man.linuxde.net/strace(linux命令大全) strace命令是一个集诊断.调试.统计与一体 的工具,我们可以使用strace对应用的系统 ...

  4. linux的strace命令用法

    strace命令用法 调用:strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] …[ -ofile ] [ -ppid ] … [ -sstrsize ...

  5. SD卡初始化以及命令详解

    SD卡是嵌入式设备中很常用的一种存储设备,体积小,容量大,通讯简单,电路简单所以受到很多设备厂商的欢迎,主要用来记录设备运行过程中的各种信息,以及程序的各种配置信息,很是方便,有这样几点是需要知道的 ...

  6. strace命令详解

    转自: http://www.cnblogs.com/ahuo/p/4150623.html 备注: 这篇博文学到的不仅仅是 strace 这个命令,还有前辈的排错思路,致敬! strace 命令是一 ...

  7. strace命令【转】

    strace命令使用: strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用 ...

  8. inux跟踪线程的方法:LWP和strace命令

    摘要:在使用多线程程序时,有时会遇到程序功能异常的情况,而这种异常情况并不是每次都发生,很难模拟出来.这时就需要运用在程序运行时跟踪线程的手段,而linux系统的LWP和strace命令正是这种技术手 ...

  9. 解决win7和2008连接windows 2003远程桌面很卡的问题

    解决win7和2008连接windows 2003远程桌面很卡的问题 来源:http://www.hack1990.com/ 作者:佚名 时间:2013-04-12 TAG: 我要投稿 原因在于从vi ...

随机推荐

  1. Ink——一款使用React风格开发命令行界面应用(CLI App)的nodejs工具

    Github: https://github.com/vadimdemedes/ink Ink introduction: React for CLIs. Build and test your CL ...

  2. matlab练习程序(单层感知器)

    clear all; close all; clc; %生成两组已标记数据 randn(); mu1=[ ]; S1=[ ; ; 0.4]; P1=mvnrnd(mu1,S1,); mu2=[ ]; ...

  3. 安卓ADB命令

    查看连接的设备 adb devices -l FastBoot常用命令: fastboot erase system    #擦除system分区 fastboot erase boot    #擦除 ...

  4. Python tuple

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表 语法 names = (a,b,c) 它只有2个方法,一个是count,一个是index. 当然也有可变元祖: 可 ...

  5. Oracle EBS INV 释放保留

    CREATE or REPPLACE PROCEDURE RelieveReservation AS -- Common Declarations l_api_version NUMBER := 1. ...

  6. Keil下载时出现program fail错误的一个原因

    在使用Keil给STM32单片机编程的时候有时会出现Programing Failed!对于这样的错误网上有很多的教程,错误的原因也有很多,比如是单片机上锁,环境配置错误的原因导致.这里我将提供一种错 ...

  7. Go 在 TiDB 的实践

    https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/79215751 更多TiDB链接: https://my.oschina.net/z ...

  8. 转:在网站开发中很有用的8个 jQuery 效果【附源码】

    原文地址:http://www.cnblogs.com/lhb25/p/amazing-jquery-effects.html jQuery 作为最优秀 JavaScript 库之一,改变了很多人编写 ...

  9. js 小数计算时出现多余的数据

    根据资料显示:是由于十进制换算成二进制,处理后,再由二进制换算成十进制时,造成的误差. 得出:所以(0.1+0.2)!=0.3 而是=0.30000000000000004的结果 解决方法: 参考:h ...

  10. October 14th 2017 Week 41st Saturday

    I was well beaten myself, and I am beffer for it. 我自己也被打败过,但我因此变得更好. For most of us, the life road c ...