![我如何确定是什么从运行 SQL Server 的 Windows Server 发送了如此多的数据?](https://linux22.com/image/580949/%E6%88%91%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E6%98%AF%E4%BB%80%E4%B9%88%E4%BB%8E%E8%BF%90%E8%A1%8C%20SQL%20Server%20%E7%9A%84%20Windows%20Server%20%E5%8F%91%E9%80%81%E4%BA%86%E5%A6%82%E6%AD%A4%E5%A4%9A%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我有一台 SQL Server,它不断通过网络接口发送数据。发送的数据量太大,大约每秒 7MB。我用杀毒软件扫描了服务器,但没有发现任何问题。
我如何确定是什么占用了我的服务器如此多的带宽?
答案1
如果存在感染的可能性,使用防病毒工具扫描服务器是没有意义的。感染本身可能是为了避免被发现。如果您担心存在感染,则需要将服务器脱机并对硬盘驱动器进行扫描。考虑使用带有防病毒软件的启动 CD,例如卡巴斯基救援 CD。
要查看某个进程占用了多少带宽,只需打开内置的“资源监视器”工具并查看网络子部分:
您还可以使用性能监视器创建一个监视器,然后使用 Process 类中的计数器来确定它使用的 IO 量。IO 将是网络和磁盘 I/O 的总数,因此您仍然可以合理地猜测哪些进程正在占用带宽。
如果你要安装第三方软件,请查看网络限制器。
如果您想要更进一步,请使用网络监视器捕获数据包或将服务器所在的端口镜像到嗅探器服务器,并尝试将数据重建为有意义的内容。
编辑1
就您而言,问题已经缩小到 IIS 和工作进程可执行文件。现在您需要检查哪个网站占用了这么多带宽。IIS 可以为每个网站创建日志文件,这些文件可以使用 LogParser 进行检查。有人制作了一个快速免费的程序,可以检查日志并显示一些统计数据。它的名字很贴切,叫做“IIS 流量监视器。“请务必检查它的文档。
还有其他付费工具可以确定 IIS 带宽使用情况,但我会让您找到它们,以免我的链接看起来像是一种认可。
如果 IIS 服务器前面有任何类型的网关或防火墙,它可能有能力检查跨越其边界的数据包并根据应用程序层流量(如 HTTP)重建统计数据(这意味着它可以按 URL 和目录对带宽使用情况进行排序)。
答案2
我将开始浏览网络流量 -http://www.wireshark.org/download.html
在 MS SQL 中,您还可以运行分析器跟踪来查看数据库活动。也许 MySQL 有类似的功能?