sudo strace -p 13793
sudo netstat -tunpa | grep 13793
解决问题
登录机器后执行top命令,果然发现存在一个CPU占用较高的PHP进程,然后执行下列命令,发现存在一个由crontab启动的执行了很长时间的PHP脚本:
由于之前也遇到过PHP脚本执行卡住的类似情况,当时的怀疑是跨机房的Mysql查询在网络抖动时导致Mysql连接卡住了,于是理所当然的将所有卡住的进程都kill掉了,再从负载上看机器马上就恢复正常了,于是心满意足的跑去干别的了。
过了一段时间,刷了下监控,发现问题又出现了,注释掉crontab并kill掉进程后,手动执行问题脚本,竟然能稳定复现问题!看来是把问题想得太简单了,尝试用strace命令看下卡住的进程当前究竟在干什么:
什么输出都没有!再用netstat看下这个进程是否打开了什么端口:
可以看到进程打开了两个端口,分别与Mysql和Redis建立了连接,并且处于连接建立(ESTABLISHED)和对方主动关闭连接(CLOSE_WAIT)的状态;初看确实像是和数据库的连接卡住了,但是因为吃过亏上过当,咱们使用tcpdump抓包看进程和数据库之间的交互:
抓了好一会,~/mysql.cap 文件中却也没有任何输出,难道进程和Mysql之间已经没有任何交互了?那为什么连接建立没有关闭呢?看来只能从头追踪一下脚本的执行情况了:
首先为了能来得及strace到进程,在PHP脚本最开始的时候输出进程的pid并sleep 10s:
然后启动tcpdump准备抓包本机和Mysql的交互过程。
最后执行PHP脚本,并复制输出的pid后在新窗口中执行strace命令。
这下strace和tcpdump都有内容了!从strace结果看recvfrom之后不再有poll,但并没有看出来有什么不对:
再从抓包结果看,执行了两条SQL查询语句之后,进程没有再次发送查询请求的包,从程序记录SQL语句日志中,也发现确实只执行了两条:
相关推荐
最近通过监控发现服务器中的一台机器异常,通过排除发现可能是php执行脚本出现了问题,于是通过一步步排查,最终解决了这个问题,下面这篇文章主要是记录了一次排查PHP脚本执行卡住的问题,需要的朋友可以参考下。
针对这些问题,我们可以通过特定的脚本来进行排查和解决。本篇文章将详细介绍三个实用的脚本——`find-jar-field`、`grep-jar`和`jar-conflict-detect`,它们是针对jar包问题的有效工具。 1. **find-jar-field** `...
这种记录对于排查问题、追踪更改历史以及审计都非常有用。用户可以轻松查看每个脚本的执行状态(成功、失败或警告),并获取关于失败原因的详细信息。 在提供的文件"SqlServerUpgrade.exe"中,很可能包含了这个批量...
记一次 Spring Boot 项目启动卡住问题排查记录
- **日志记录:** 考虑在脚本中加入日志记录功能,以便于后续的问题排查。 - **兼容性检查:** 如果是在不同版本的Solaris上部署脚本,建议进行兼容性测试,以确保脚本能够正常运行。 通过以上步骤,你就可以在...
Linux应急响应辅助排查脚本 一键运行导出日志 将该脚本下载并移动到Linux任意文件夹,以root权限运行即可导出result.log辅助快速应急响应主机排查。 可使用此脚本用于分析日常服务器差异及被攻击行为。
- 例如,可以参考文章“记录一次排查PHP脚本执行卡住的问题”,了解如何处理这类常见问题。 通过以上步骤,我们不仅能够顺利地在CMD下运行PHP脚本,还能掌握一些高级技巧,如带参数运行、定时任务等,从而提高开发...
- 为了便于排查问题,批量执行脚本的过程中应记录详细的日志,包括每个脚本的执行状态、开始和结束时间、错误信息等。 - 可以将日志输出到控制台、文件或者日志服务,以便后期分析。 8. **脚本依赖与顺序**: - ...
在IT管理领域,有时我们需要对网络接口进行快速的启停操作,特别是在排查网络问题或配置更新时。"重启网卡脚本"就是为了解决这个问题而设计的,它结合了`devcon.exe`工具和批处理脚本来实现一键管理网络接口的状态。...
此外,IP查询功能允许用户查看当前网卡的IP配置状态,这在排查网络问题时非常有用。如果在选择网卡时出错,脚本还提供了重新选择的功能,确保操作的准确性。这个功能尤其适合那些管理多台设备或者在复杂网络环境中...
7. **故障排查**:如果脚本宿主出现问题,除了使用提供的修复工具,还可以尝试重启计算机、禁用脚本阻止功能(如通过Internet Explorer的安全设置)、检查病毒扫描软件是否阻止了脚本执行,或者通过事件查看器查看...
在本文中,我们将详细讨论 4G 模组 SIM 卡无法识别的问题,并提供相应的排查和解决方案。 标题解释: 4G 模组 SIM 卡无法识别是一种常见的问题,导致模组无法连接网络和参与网络活动。在本文中,我们将讨论如何...
这里的hooks文件夹可能包含了在脚本执行前、执行后或其他特定阶段运行的钩子函数,用于扩展或定制脚本的行为。 综合以上信息,"GENESIS脚本!"涉及的知识点可能包括: - 脚本语言基础:如Python、bash或者其他脚本...
"遨游网页助手"是一款专为用户查看JavaScript运行脚本设计的工具,它提供了一种便捷的方式,帮助用户深入理解网页中的脚本执行过程。在网页开发和调试中,能够实时查看JavaScript的运行状态是非常重要的,这能帮助...
如果失败,应显示错误信息以便排查问题。 最后,安全是此类操作的核心。必须通过HTTPS协议来运行脚本,以保护密码在传输过程中的安全性。此外,脚本应该放在受密码保护的目录下,避免未经授权的访问。对用户输入...
如果在`bat`脚本中遇到进入`shell`后无法执行后续命令的问题,可能是因为没有正确处理命令的执行顺序或权限。确保每个命令都在适当的位置并赋予必要的执行权限是很关键的。 在编写`bat`脚本时,还需要注意以下几点...
总的来说,"snail007-phprunner-0ce9948"是一个旨在解决Linux环境下无依赖执行PHP脚本问题的工具,它可能是通过嵌入PHP解释器、动态链接库或C++接口等方式实现的。理解其工作原理和实现方式有助于我们更好地利用这类...
运行过程中,脚本会自动执行兑换码的使用流程,按照预设逻辑进行登录、输入兑换码等操作。如果遇到问题,如登录失败、兑换码无效等,脚本可能会有相应的错误提示,根据提示进行排查。 总的来说,《星穹铁道自动使用...