当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

作者:精品下载站 日期:2024-12-14 22:52:32 浏览:15 分类:玩电脑

如何查看 IIS 站点上的活动用户会话数?


如何快速估计 Windows Server 上运行的 Web 服务器上的 IIS 站点的当前用户连接(会话)数量?这些信息将允许确定和预测服务器上的负载,选择网站维护和更新的最佳时间,预测用户数量增加时 IIS 服务器的负载。

确定 IIS 网站上活动用户会话数的最简单方法是使用 Windows性能监视器中的性能计数器。

通过运行 perfmon 命令打开性能监视器控制台,然后转到性能监视器部分(监视工具 — > 性能监视器)。

然后,您需要将必要的计数器添加到监视窗口(默认情况下,显示总 CPU 使用计数器,但您可以将其删除)。要添加新计数器,请单击工具栏上的绿色按钮(您可以在屏幕截图中看到它)或按键盘上的Ctrl+N

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

在可用计数器列表中,找到并展开Web 服务组。在此类别中,我们对三个计数器感兴趣:

  • 当前匿名用户 - 匿名 IIS 用户数量;

  • 当前非匿名用户 - 授权 IIS 用户数量;

  • 当前连接 - IIS 服务器上的活动连接总数。

选择所需的计数器,然后在选定对象的实例中选择一个或多个要显示其连接信息的 IIS 网站。服务器上所有网站的用户信息都存储在_Total实例中。现在您只需点击添加>>按钮即可将计数器移至右侧窗格中要添加的计数器列表中。

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

以相同的方式添加所有必要的计数器,然后单击“确定”。

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

现在,Performance Manager 控制台中正在实时显示有关用户会话数的信息(默认情况下,计数器值显示为线性图)。如果您选择底部窗格中的任何计数器,您可以查看其在给定时间段内的最后值、平均值、最小值或最大值。

您可以将自定义性能计数器添加到此控制台并将其保存在单独的视图中,以便稍后用于快速访问 Web 服务器负载数据。

您可以从 PowerShell 访问 IIS 性能计数器。为此,您可以使用 Get-Counter cmdlet。所有可用的 Web 服务性能计数器的列表可以显示如下:

(Get-Counter -ListSet 'Web Service').counter

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

要获取有关 IIS 服务器上当前活动连接数的信息(计数器 \Web Service(*)\Current Connections),请使用以下命令:

Get-Counter -Counter “\Web Service(*)\Current Connections”

正如您所看到的,此命令返回了 IIS 服务器的连接总数以及每个站点的统计信息。

提示。

  • 如果指定以逗号分隔,则可以显示多个计数器的值;

  • 使用-Continously选项,有关计数器值的信息将不断显示在控制台中,直到您使用 CTRL+C 中断它。

您可以获得特定 IIS 站点的活动会话数。例如,要获取名为 Site1 的站点上的当前连接数,请运行以下命令:

Get-Counter "web service(Site1)\current connections" -ComputerName web-srv01

您可以指定检查计数器值的服务器的名称。当您在本地检查站点上的连接数时,不允许指定 localhost:

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

Get-Counter "web service(Site1)\current connections" -ComputerName $env:COMPUTERNAME

要获取整个 IIS Web 服务器(IIS 上的总用户)的计数器“当前连接”的数值,可以使用以下命令:

((Get-Counter -Counter 'web service(_total)\current connections' -computer $env:COMPUTERNAME) |     Select-Object -Expand countersamples).Cookedvalue

让我们尝试使用一个简单的脚本与我们的站点创建几个额外的会话并检查计数器值。您可以使用 Invoke-WebRequest cmdlet 增加与 IIS 网站的连接数量,也可以简单地在浏览器中打开多个窗口:

$counter = 20
for($i=1;$i -le $counter;$i++){
$SiteAdress = "http://localhost:9666/"
Start-Process $SiteAdress
}

检查当前连接计数器的值并确保其增加。

如果服务器上运行多个 IIS 站点,并且需要以表格形式获取每个站点的连接数,则可以使用此脚本(要将 IIS 的数据接收到 PowerShell,需要加载 WebAdministration 模块):

import-module webadministration
function get-CurrentConnection($Site) {
Get-Counter "web service($Site)\current connections,web service($Site)\ Bytes Received/sec,web service($Site)\Bytes Sent/sec" -ComputerName $env:COMPUTERNAME
}
$IISsites = dir IIS:\Sites | Select Name
$CurrentConnection = @()
foreach ($site in $IISsites)
{
Write-Host $site
$ConnCount = New-Object psobject | get-CurrentConnection -Site $site.name
$CurrentConnection += $ConnCount
}
$CurrentConnection|out-gridview

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

您还可以显示所有站点的连接计数器的数值(第一个值是 IIS 的连接总数):

Get-wmiObject -class Win32_PerfRawData_W3SVC_WebService | select-object -expand currentconnections

[玩转系统] 如何查看 IIS 站点上的活动用户会话数?

因此,我们研究了一种获取有关 IIS Web 服务器上运行的站点负载信息的方法。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯