Laptops em um domínio todos congelando aleatoriamente por alguns segundos nos últimos 14 dias

3

Temos um número de laptops Windows 7 x64 Dell Latitude E5550 em um domínio do Windows. Cca 1-2 (-3?) Semanas atrás tudo começou a congelar aleatoriamente várias vezes durante um dia por alguns segundos.

Congelar significa que o Windows fica totalmente sem resposta, a comutação de luz numlock funciona por um tempo, então ele pára de funcionar também, então ele se torna normalmente responsivo novamente. Todo o processo se repete aleatoriamente e a duração do congelamento leva de alguns segundos até o máximo. cca 20-30 segundos.

Nós tentamos desinstalar o problemático KB3114717, mas sem melhorias. Usando antivírus do AVG, Office 2013, Windows 7 x64.

Eu entendo que isso não é suficiente para dar qualquer resposta, mas há configuração ou filtro como no Sysinternals ProcessMonitor que me permitiria ver se algo bateu como 50% da CPU ou mais?

Quando o problema ocorre, o perfmon reporta espaço em branco, o que eu suponho significa que ele não pode ser causado por nenhum processo simples e deve ser um problema dentro do kernel ou drivers ...?

A partir de uma análise mais aprofundada parece que o problema está relacionado com Process , ou seja, após os contadores irem abruptamente para cima antes do congelamento:

  • falhas de paginação por segundo
  • Operações de dados de entrada / saída por segundo
  • Bytes de operações de leitura de entrada / saída por segundo
  • Operações de leitura de entrada / saída por segundo

Mas não é possível encontrar nenhuma informação de acordo com o processo que causou isso nos dados do PerfMon.

Encontrei poucos candidatos a encrenqueiros: 1E NightWatchman, 1E WakeUp Agent, Serviço de Áudio Realtek, Serviço AVG, indo experimentá-los seletivamente

    
por Vojtěch Dohnal 10.03.2016 / 12:04

3 respostas

0

Ainda não consegui descobrir a causa raiz, mas os computadores com os seguintes serviços foram desativados:

  • 1E NightWatchman
  • 1E Agente WakeUp

agora tem contagem zero de problemas de congelamento. Antes de desabilitar esses serviços, eles congelam ocasionalmente. Input/output data operations per second subir para esses serviços no perfmon antes do congelamento ocorrer.

    
por 22.03.2016 / 11:02
1

Eu escrevi este script aqui para obter alguns dados de processos quando preciso "depurar" uma falha do sistema. Ele criará um job de fundo em uma sessão do powershell que aguarda a saída de um processo

Ele obtém todas as informações GDI-Objects, Handles, RAM etc. para cada processo em execução na estação de trabalho. Talvez você possa tentar pegar o processo que cria a falha com isso.

i GUESS desde que o computador congela, que o processo explorer.exe não está respondendo. Portanto, dispararemos o script get-data sempre que a propriedade de resposta do explorer.exe não for verdadeira.

Basta iniciar este script em uma sessão do powershell em qualquer estação de trabalho desejada. Ele visualizará uma falha por meio do texto do balão na bandeja do Notify. Se você quiser uma notificação por email, basta colocar um Send-Mailmessage após a Get-MachineData parte.

você pode usar o PowerShell enquanto a tarefa em segundo plano está em execução. Use get-job para ver se o trabalho realmente está em execução.

As informações detalhadas serão salvas em% userprofile% \ ProcessDetails.txt

Start-Job -name CatchSystemFailure {
$sig = @'
    [DllImport("User32.dll")] public static extern int GetGuiResources(IntPtr hProcess, int uiFlags); 
'@ 
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32
[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null

function Get-MachineData(
    [switch]$AllProcessDetails,
    [switch]$RAM
    )
    {
        switch($PSBoundParameters.GetEnumerator().Where({$_.Value -eq $true}).Key)
        {
        'AllProcessDetails' {
            $processes = [Diagnostics.Process]::GetProcesses() |
            select Name, Responding, NPM, PM, WS, VM, Cpu, Handles, @{n='GDI-Objects';e={
                [Win32.NativeMethods]::GetGuiResources($_.Handle, 0).ToString()}
            } | sort Name
            Write-Output $processes
        }
        'RAM' {
            $ComputerSystem = gwmi Win32_operatingsystem -Property TotalVisibleMemorySize, FreePhysicalMemory
            $FreePhysicalMemory = "{0:N2}" -f (($ComputerSystem.FreePhysicalMemory) / (1mb))
            $TotalVisibleMemorySize = "{0:N2}" -f (($ComputerSystem.TotalVisibleMemorySize) / (1mb))
            $TotalFreeMemPerc = "{0:N2}" -f (($FreePhysicalMemory/$TotalVisibleMemorySize)*100)
            $Memory = New-Object PSCustomObject –Prop (@{
            'Server-RAM'=$TotalVisibleMemorySize + "GB";
            'Free RAM'=$FreePhysicalMemory + "GB";
            'Free RAM in %'=$TotalFreeMemPerc + "%"
            }) | fl *
            Write-Output $Memory
        }
    }}
    while ((Get-Process system).Responding) {sleep -Milliseconds 50}
    if (!(Get-Process system).Responding) {
        $SystrayIcon = New-Object System.Windows.Forms.NotifyIcon 
        $SystrayIcon.Icon = [system.drawing.icon]::ExtractAssociatedIcon($pshome + "\powershell.exe")
        $SystrayIcon.BalloonTipText = "system failure! inform your systemadministrator!"
        $SystrayIcon.BalloonTipTitle = "Process Watcher"
        $SystrayIcon.Visible = $true
        $SystrayIcon.ShowBalloonTip(600)
        $SystrayIcon.dispose()
        Get-MachineData -AllProcessDetails -RAM | out-file $env:USERPROFILE\ProcessDetails.txt -Force
    }
} | out-null
    
por 11.03.2016 / 10:39
-3

Tente desabilitar o ipv6, ele pode ser uma vulnerabilidade conhecida.
link

    
por 11.03.2016 / 10:02