轻松获取IIS网站上活跃用户会话数

f90a7ee23fe7e15f7fa2ea15474384f9.gif

 新钛云服已累计为您分享807技术干货

6a06a2e4f5be70a011c59e56ae83540f.gif

想知道你的Windows Server上的IIS网站现在有多少用户在线吗?这个信息超级有用,它不仅能帮你预测服务器的负载,还能帮你选个好时机进行网站维护和更新。想知道怎么做吗?跟我来!

01

用性能监视器查看用户会话数

Windows性能监视器是个宝藏工具,它能帮你监控IIS站点的活跃用户会话数。首先,打开性能监视器控制台,然后找到“性能监视器”部分。

添加性能计数器

默认情况下,你可能看到CPU使用率的计数器,但我们现在要关注的是IIS的用户会话数。点击工具栏上的绿色按钮,或者按Ctrl+N,就能添加新的计数器了。

26c1bc5dbebe8bd42502e48b075f3cf4.png

选择Web服务组的计数器

在计数器列表中,找到并展开“Web服务”组。这里有三个重要的计数器:

  • 当前匿名用户: 显示匿名IIS用户的数量。

  • 当前非匿名用户: 显示已授权的IIS用户数量。

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

添加并查看计数器

选择你需要的计数器,然后在实例中选择一个或多个IIS网站。点击“添加>>”按钮,计数器就会出现在右侧窗格中了。

d02c7e6c673054eba1b70107f64d0094.png

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

0ea536ef952e20443fcf99146e817105.png

使用Performance Manager监控用户会话数

现在,Performance Manager控制台会实时显示用户会话数的信息。你可以看到计数器值的线性图,选择任何一个计数器,都能查看它在特定时间段内的最新值、平均值、最小值或最大值。

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

使用PowerShell访问IIS性能计数器

现在,Performance Manager控制台会实时显示用户会话数的信息。你可以看到计数器值的线性图,选择任何一个计数器,都能查看它在特定时间段内的最新值、平均值、最小值或最大值。

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

使用PowerShell访问IIS性能计数器

如果你更喜欢用PowerShell,那也没问题。用Get-Counter命令,你就能获取所有可用的 Web 服务性能计数器的列表。

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

183a02909bcfa5114f6c1cbefe5cb937.png

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

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

这个命令会显示IIS服务器的总连接数和每个站点的统计信息。

提示

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

  • 使用–Continuous选项,计数器值的信息将持续显示在控制台中,直到您使用 CTRL+C 中断它。

获取特定IIS站点的活动会话数

如果你只关心某个特定的IIS站点,比如名为Site1的站点,你可以用下面的命令:

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

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

6a899b2bddc995211609a5d7f64353b7.png

为了不必每次都指定服务器名称,可以使用环境变量COMPUTERNAME:

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

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

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

02

模拟测试

如果你想自动化这个过程,可以用脚本来获取每个站点的连接数。这里有个简单的脚本示例,它会启动多个浏览器进程来模拟用户会话,然后检查计数器值。

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

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

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

powershell
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

69ce547a4fea3d819129412d97110786.png

最后,如果你想看所有站点的连接计数器数值(第一个值是与 IIS 的连接总数),可以用这个命令:

powershell
Get-WmiObject -class Win32_PerfRawData_W3SVC_WebService | Select-Object -ExpandProperty CurrentConnections

630f7ac2d959bff13edf32c32b6d16f4.png

您可以使用计数器显示有关每个站点或整个 Web 服务器接收/发送的数据量的信息Web service(sitename)\Bytes Sent/sec、Web service(sitename)\Bytes Received/sec 。

这样,你就能轻松掌握IIS网站上的活跃用户会话数了。希望这些信息对你有所帮助!

如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。

参考链接:https://woshub.com/how-to-monitor-active-sessions-on-iis/

    推荐阅读   

f4f1a903749bac9ac428375ac9659f2b.png

3a3c86a285381e13e65bc7f02d5ff4e2.png

    推荐视频    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值