标签: debugging

如何识别sql server中的慢查询?

在谷歌上搜索这个问题的答案时,我发现了像这样的长而复杂的说明,一个简短的参考链接,比如这篇文章

我正在寻找一个尽可能简洁的过程来生成具有执行时间的 SQL 查询列表,其中执行时间 > some_threshold。

performance debugging sql-server

6
推荐指数
2
解决办法
2万
查看次数

如何配置 PHPStorm 在 IIS 上进行调试

我使用 Web 平台安装程序在 Windows 7 64 位机器上的 IIS 上安装了 PHP 5。我使用 PHPStorm 作为我的 PHP IDE,但找不到任何有关如何进行调试的文档。PHPStorm 启动了我的 PHP Web 应用程序,但断点没有得到它。

任何帮助表示赞赏。

iis-7 debugging php5

6
推荐指数
1
解决办法
1570
查看次数

来自该网络的所有连接都卡在 SYN_RECV 状态,来自我家或手机的连接正确建立

我的服务器(一个 linode VPS)昨天突然开始在每次请求时超时。

我在网络方面非常缺乏经验,很想学习调试这些连接问题的过程。

让我感到困惑的是,昨天,有些人(我的手机、我在家、家里的朋友)可以一直访问该站点,我看到netstat已经建立了连接。我禁用了防火墙并将 iptables 设置为接受所有连接,以排除将我们的 IP 列入黑名单的任何奇怪的自动规则。我不确定它是否相关,但是来自本地网络的 traceroute 超时 - 来自外部某些机器的 traceroute 找到了我的服务器。

通过与运行正常的开发服务器上的设置进行比较,我确认了各种设置是正确的。

以下文件与我的开发环境匹配(除了它们各自的 ip 地址):

/etc/hosts 
/etc/hosts.allow
/etc/hosts.deny
/etc/networking/interfaces 
ifconfig
Run Code Online (Sandbox Code Playgroud)

Apache 正在侦听端口 80,设置看起来与我正在运行的服务器完全相同。

# server that doesn't work:
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      22008/apache2
tcp        0      0 69.164.201.172:80       71.56.137.10:57487      SYN_RECV    -

# server that does work
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3334/apache2
tcp        0      0 72.14.189.46:80         71.56.137.10:57490      ESTABLISHED 20931/apache2
Run Code Online (Sandbox Code Playgroud)

我的理解尝试

每次加载页面时,都会netstat -an | grep :80显示处于 SYN_RECV 状态的所有连接。

tcp        0      0 …
Run Code Online (Sandbox Code Playgroud)

networking debugging tcp apache-2.2

6
推荐指数
1
解决办法
3万
查看次数

如何通过 fcgiwrap/nginx 调试 CGI

我通过fcgiwrapnginx. 由于脚本被编译,我可以在编译过程中得到编码错误,但有时我收到CGI错误只是说明

An error occurred while reading CGI reply (no response received)
Run Code Online (Sandbox Code Playgroud)

是否有任何调试方法可以识别 CGI 请求/进程有什么问题?

如何设置调试系统以将错误传送到 nginx 日志中?

nginx debugging fastcgi cgi

6
推荐指数
1
解决办法
2838
查看次数

如何查明哪个进程/活动/软件/协议会减慢单台计算机上的 LAN 速度

这个关于调试我们的业务 LAN 的问题中,我已经能够查明一台降低我们网络速度的计算机。

当计算机打开并连接到网络时,大约 5% 的所有站点交互(即点击网站中的链接)在很大程度上减慢,有时在 40 秒后呈现页面而不是常规页面或两秒钟。

当我们断开计算机的连接时,网络负载会很顺利。

我们有一个托管的 Cisco 催化剂交换机、一个 Cisco ASA-5505 防火墙,以及一些监控工具(wireshark 和 nmap)。

计算机用作照片服务器(使用 iPhoto)并在我们网络的计算机之间传输一些信息。

我怎样才能追踪和/或监控我的网络或计算机活动,让我知道,在连接到网络的一台确定的计算机上,什么进程/协议/活动正在减慢网络速度?

networking debugging

6
推荐指数
1
解决办法
1785
查看次数

为什么 strace 输出中的 brk() 需要几秒钟?

当迁移到 Ubuntu Hardy amd64 时,我们注意到我们的一个应用程序显着变慢。它在 Debian Sarge i386 上运行良好。

针对(Apache 1.3)httpd 进程运行“strace -r”显示了以下令人不安的部分:

     0.000083 poll([{fd=8, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1
     0.000026 recvfrom(8, "_323-412D\0\0\0000\0\2\0\0\0\17recueil-cours"..., 32727, 0, NULL, NULL) = 8192
     0.000061 poll([{fd=8, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1
     0.000026 recvfrom(8, "\0\0\0000\0\2\0\0\0\17recueil-courses\0\0\0\23er2"..., 32767, 0, NULL, NULL) = 2369
     0.117422 brk(0x397a000) = 0x397a000
     0.140721 brk(0x399b000) = 0x399b000
     4.457037 brk(0x39bc000) = 0x39bc000
     0.078792 stat("/opt/semantico/slot/nijhoff/3/sitecode/live/public_home.html", {st_mode=S_IFREG|0644, st_size=2194, ...}) = 0

注意最后一行的 brk - 暗示 brk(0x399b000) 用了 4.45 秒!

我已经查看了 brk 的手册页,其中指出它用于请求更大的数据段/堆,但我找不到任何需要这么长时间的原因。

有人有任何想法吗?

linux ubuntu debugging kernel

5
推荐指数
2
解决办法
1万
查看次数

如何通过 Microsoft.Exchange.Rpc.ClientAccess.Service.exe 调查持续的高 CPU 使用率?

我们阵列中的一台 CAS 服务器使用了其 4 个 CPU 中的近 90%。其余的 CAS 服务器占 30%。

我应该如何调查导致这种增加的原因?

下图为:

  • 六 (6) 台 CAS 服务器以 RPC/HTTPS(Outlook 随处可见)模式为 3,000 名用户提供服务。
  • 视窗 2008 R2
  • 最近升级到 Exchange 2010 SP1 RU6(RU3 上的行为相同)
  • 每个 CAS 服务器有四 (4) 个虚拟 CPU

兴趣点

  • 由于我们要求最终用户针对不同的 URL 配置 Activesync,因此我们在负载均衡器上设置了专用 VIP,并隔离了底部的两个 CAS 服务器。这样做很容易……我们更改了公共 DNS 条目以促进隔离。(我希望 MSFT 最佳实践鼓励 Activesync 部署的独立 URL)
  • 黑色的高 CPU 来自 ActiveSync。
  • 绿色尖峰来自 RPC 客户端访问服务。

在此处输入图片说明

我在服务器上运行了 MSFT 的DebugDiag,但不知道这是否是正确的工具,或者如何处理一些更高级的结果。任何提示表示赞赏。

debugging perfmon exchange-2010 cpu-usage best-practices

5
推荐指数
1
解决办法
2万
查看次数

如何调试 Node + Socket.io CPU 问题

我们正在使用 Express 3 运行 Node Socket.io 服务器。服务器使用Forever进行监控。服务运行良好,但 CPU 一整天都在增长,直到达到 90% 以上,然后突然回落到约 20%,如下图所示。我相信下降是由 Forever 重新启动应用程序引起的。

CPU 行为

我想知道的是;

  • 可能导致 Node.js 应用程序出现这种行为的典型因素是什么?
  • 有哪些工具/方法可用于调试节点应用程序中的内存泄漏/cpu 占用?

我认为这可能与 Socket.io 在用户断开连接后不清理资源有关,尽管文档说 Socket.io 会自动管理它。

任何帮助将不胜感激,这个问题使管理我们的服务器变得非常困难。请让我知道这个问题是否更适合 StackOverflow。

更新:经过更多研究,似乎 CPU 与连接数没有直接关系。我们的临界质量似乎是大约 1500 个并发连接,如下所示:

  • xhr 轮询:767
  • 网络套接字:692
  • jsonppolling:80

有时我们可以在只有 500 个连接的情况下 100% CPU,其他时候它的 1500 个连接。我知道发送消息的速率有很大的影响,但是速率是相当一致的。

debugging memory-leak cpu-usage socket node.js

5
推荐指数
1
解决办法
6472
查看次数

带有 systemd 的 Ubuntu 服务器 - 如何获得回溯或核心转储?

我正在使用带有 systemd 的 Ubuntu 18.04 服务器。最近我部门开发的一个程序一天内崩溃了两次,错误如下:

Jun 07 06:33:07 xxx systemd[1]: xxx.service: Main process exited, code=killed, status=11/SEGV
Jun 07 06:33:07 xxx systemd[1]: xxx.service: Failed with result 'signal'.
Run Code Online (Sandbox Code Playgroud)

我认为下一步是获取回溯或核心转储,但是我不确定如何在带有 systemd 的 Ubuntu 服务器上执行此操作。

我不知道我是否应该追求使用systemd-coredumpcoredumpctl或者一些其他的工具。

另外,我不确定要发出什么命令。对于上述实用程序,有大量关于各种功能等的文档,但我找不到以下方面的简明示例:

sudo apt-get install xyz

(run x, y, z commands to get core dump)
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一个简洁的示例或教程网站来很好地解释这一点吗?我不需要或不想使用各种精心设计的功能,我只是想获得一个基本的核心转储。

debugging systemd ubuntu-18.04

5
推荐指数
1
解决办法
2983
查看次数

nginx。如何在不破坏服务器日志的情况下记录 ssl 错误

我有一个网站,它被许多不同的移动设备和嵌入式设备访问。

我经常遇到一些设备无法连接的问题。

原因可能是:

  • 设备无法识别某个 CA
  • 设备太旧,需要旧协议 TLS1.1
  • 该设备需要过时的加密算法或只是加密算法,我没有在服务器 conf 中提供。

由于设备位于远程位置,没有易于访问的日志,我希望能够使用 nginx 日志分析此类问题。

我可以通过增加错误日志日志级别来调试来做到这一点。

error_log  /var/log/nginx/errors_with_debug.log debug;
Run Code Online (Sandbox Code Playgroud)

然而,这个日志包含了很多我不感兴趣的东西。

只有在 ssl 连接被拒绝但所有其他情况下都有正常的错误日志级别时,有没有办法记录详细信息?

到目前为止,我启用了debug日志记录,让设备有问题的远程用户连接并记录跟踪,禁用调试级别,重新加载 nginx 并分析获得的跟踪。

事实上,如果我可以记录由于 SSL 问题而无法连接的任何客户端的日期和 IP 地址,我已经得到了帮助。

理想情况下,我也想记录原因,但知道,尝试连接但由于 SSL 失败将非常有帮助。

ssl nginx debugging logging

5
推荐指数
1
解决办法
1764
查看次数