现在我正在处理一个客户端的基于PHP的网站,不知何故堵塞了他与他的共享主机提供商的所有可用的进程。 我想向他certificate在某个特定的索引页面被加载到浏览器中的时候,究竟运行了多less个进程。 我可以一次看到5或6个popup窗口,但是它们全部消失,很快回来,我无法find任何具体的pid来追踪。 任何人都有一个想法,我怎么能预测我应该跟随的PID号码,找出他的网站具体做什么?
我想用SystemTap编写简单的strace-like脚本。 主要目标是仅捕获系统中所有进程的一些系统调用(如打开,closures,读取,写入等)。 (因为整个系统相当于即时系统冻结,所以不能用strace做到这一点)。 现在它是这样的: #!/usr/bin/env stap probe syscall.* { printf("PID: %d\tNAME: %s\tARGSTR: %s\n",pid(), name, argstr); } 当我想将输出保存到文件时,问题就开始了。 Stap脚本不断发现自己写入文件,所以它永远不会结束循环。 我认为解决scheme是这样的: #!/ usr / bin / env stap 探测系统调用* { if(pid()!= myOwnPid()) printf(“PID:%d \ tNAME:%s \ tARGSTR:%s \ n”,pid(),name,argstr); } 但是我不知道任何给pid运行stap脚本的函数。
我又一次想知道为什么没有(或者我没有find它?)任何工具,可以可靠和毫不费力地回滚更新所做的更改。 让我以Debian上的apt为例进行更新。 有这个新的包,有它的依赖。 每个软件包都有一个将被创build/修改/删除的文件列表。 另外,其他文件可能会被configuration脚本修改。 我对这个话题的研究提出了尽可能好的解决scheme。 通过strace,可以监视单个进程的系统调用(让我们假设apt-get),并且可以过滤出与我正在查找的系统调用相关的信息。 有了这个列表,就可以用一个命令可靠地回滚更新。 也许甚至可以添加某种钩子到一个修改后的strace可执行文件,这个可执行文件在被修改之前触发每个文件的备份。 我的假设是否正确? 如果是的话,这样的工具是否存在?
有没有办法有意防止一个进程的响应 – 即。 不要closures或杀死它,而是停止它的轨道,所以它立即停止处理任何东西? 我经常发现自己想强制一个进程进入一个无响应的状态来testing某种处理程序,以便在这种情况发生时出于任何原因。 目前我正在使用centos 5.5,特别是要防止named响应 – 偶尔会在“正常情况下”(即导致未知)发生,我需要对此做出反应…但是当我testing时相当困难需要等待(数周),以便随机发生。 我认为这个过程已经死亡的一个很好的指标是, strace -p 1234是沉默的。 一个通用的解决scheme是首选,但如果你有任何想法,只会涉及这个具体情况,请做一个回答无论如何。
我试图find一个非常缓慢的WordPress网站的底部:请求一个页面,它挂起大约20秒,才开始加载页面。 我试过平常的事情:WPdebugging模式,检查慢MySQL查询,禁用插件,检查Apache不排队请求等,没有喜悦。 我现在用strace来看Apache的过程(我正在运行PHP作为mod_php),试图看看发生了什么。 不幸的是我的核心function很弱,我需要一些帮助来解释strace输出。 我正在用-r运行strace,如果我正确理解man页面,这将显示前一个sys调用的时间。 看看输出,我看到几个电话5秒,例如: 0.000114 accept4(4, {sa_family=AF_INET6, sin6_port=htons(46242), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28], SOCK_CLOEXEC) = 13 0.000116 getsockname(13, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 0.000109 fcntl(13, F_GETFL) = 0x2 (flags O_RDWR) 0.000061 fcntl(13, F_SETFL, O_RDWR|O_NONBLOCK) = 0 0.000078 read(13, "GET /wp-content/uploads/fake-ici"…, 8000) = 593 0.000144 stat("/var/www/wp-content/uploads/fake-icicles-500×500.jpg", {st_mode=S_IFREG|0777, st_size=34241, […]
我有一个问题,在Debian Squeeze 64上杀死CPU。这是一个VPS上的开发机器,所以我停止了所有其他服务,包括apache2。 mysql版本是5.1.49。 这是mysql启动时的日志: Feb 6 19:03:40 Debian-60-squeeze-64-LAMP mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql Feb 6 19:03:40 Debian-60-squeeze-64-LAMP mysqld: 130206 19:03:40 [Note] Plugin 'FEDERATED' is disabled. Feb 6 19:03:40 Debian-60-squeeze-64-LAMP mysqld: InnoDB: 1 transaction(s) which must be rolled back or cleaned up Feb 6 19:03:40 Debian-60-squeeze-64-LAMP mysqld: InnoDB: in total 1 row […]
我遇到严重的性能问题启动应用程序,但只有当连接到我的办公室VPN。 它似乎与gnome-session有关。 我相信以下是简单启动gnome-terminal (但是对于我尝试过的所有应用程序来说,这是相似的)。 如果我理解了这个痕迹,我所包含的最后一行显示需要20秒才能读取/tmp/.ICE-unix/4108 。 如果我是正确的,我怎样才能确定为什么要这么久? $ grep -v -B 1000 '^\ *0' terminal.trc | egrep 'open|\(10' 0.000103 connect(10, {sa_family=AF_FILE, path="/tmp/.ICE-unix/4108"…}, 21) = 0 0.000134 fcntl64(10, F_SETFD, FD_CLOEXEC) = 0 0.000023 write(10, "\0\1\0\0\0\0\0\0", 8) = 8 0.000051 read(10, "\0\1\0\0\0\0\0\0", 8) = 8 0.000020 write(10, "\0\2\1\1\6\0\0\0\0\0\0\0\0\0\0\0\3\0MIT\0\0\0\3\0001.0\0\0\0"…, 56) = 56 0.000085 read(10, "\0\3\0\0\1\0\0\0", 8) = 8 […]
在我的服务器的控制面板中添加一个新的域时,从一段时间开始比平时花费更多的时间。 CPU在一个内核上显示100%的使用率,strace报告如下: poll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, -64771072) = 1 ([{fd=7, revents=POLLIN}]) recvfrom(7, "OiJsb2NhbCI7fWk6NTQ0O2E6NTp7czo1"…, 8192, MSG_DONTWAIT, NULL, NULL) = 8192 poll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, -64771072) = 1 ([{fd=7, revents=POLLIN}]) recvfrom(7, "bm5hbWUiO3M6MjI6ImJhZHppZXdpYXJ6"…, 8192, MSG_DONTWAIT, NULL, NULL) = 8192 poll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, -64771072) = 1 ([{fd=7, revents=POLLIN}]) recvfrom(7, "IjtzOjExOiJ3ZWJtYWlscHJvZyI7czow"…, 8192, MSG_DONTWAIT, NULL, NULL) = 8192 可能是什么原因? 我的操作系统是CentOS 5.9 64位。 试过不同的硬件和内核,总是一样的…
有人可以给我关于以下情况的想法(Linux 2.6.18-348.4.1.el5): 在某些时候,tcpdump会显示从服务器端口发送到本地客户端的[FIN,ACK]数据包 strace日志显示在那个时候该端口的那个套接字句柄上没有执行套接字活动(strace日志正确地显示了该客户端的其余通信) 防火墙和SELinux都停止了 问题是复杂的条件,需要服务器执行networking请求Kerberos身份validation的另一个客户端连接100%重现。 什么是可能的原因,可能导致tcpdump显示strace中丢失的数据包? 它看起来更像是服务器问题,TCP设置问题还是一些防火墙服务问题?
我有大约12个httpd进程运行RHEL aws框,没有人在浏览器中打开(共享的团队开发框)。 这些进程一起在开发盒上消耗了超过1.8GB的内存,而且我已经看到它在生产上达到了6GB。 每个进程消耗大约800 MB的ps aux。 我对他们中的一个做了一个调查,然后离开了一段时间,发现: <venv>/django/contrib/flatpages/templatetags/analytical 0x7fff37ef41a0) = -1 ENOENT (No such file or directory) <venv>/django/contrib/flatpages/templatetags/analytical.py, O_RDONLY) = -1 ENOENT (No such file or directory) <venv>/pagination/templatetags/expert_tags.py, O_RDONLY) = -1 ENOENT (No such file or directory) <venv>/django/templatetags/raven.py, O_RDONLY) = -1 ENOENT (No such file or directory) <vevn>/django_extensions/templatetags/raven.py O_RDONLY) = -1 ENOENT (No such file […]