본문 바로가기

어떻게 할까/소프트웨어

Windows 10 DPC latency 문제, 해결 방법이 어느정돈 있다 !


 이 참으로 ㅂ ... 같은 Windows 10 을 어중간 하게 구형인 노트북 등에서 쓰다 보면 아무리 뭘 해도 음악이나, 게임 등을 할때 알수 없이 순간순간 버벅이는 이상한 증세를 겪어 봤을 겁니다.

 관련글 : Windows 10 DPC latency 문제, 해결 방법은 없다!

 수 달을 지 멋대로 윈도우 업데이트 해 대는데도 전혀 달라질 모습은 1도 안보이는데다, 뭘 할때 마다 끊기는 소리를 들어 가며 게임을 무념무상으로 좀 즐기며 넘어 가려 했지만, 도저히 이건 안되겠다 싶어 여러 싸이트를 뒤지던 중! 미국 마소 페이지에서 다음과 같은 글을 봅니다.

SpeedGuide.net 에서 TCP 최적화 툴을 받아서 실행 한 다음, 최적화 하면 마법같이 소리가 끊어지는 일이 없어진다.

 그래서 해 봤습니다.

 먼저, 위 페이지 ( https://www.speedguide.net/downloads.php ) 에서 SG TCP Optimizer 를 내려 받습니다. 그런다음, 관리자 권한으로 실행 해 줘야 합니다. 만약 관리자 권한으로 실행 하지 않으면, 시스템을 변경 할 권한이 없다는 경고문을 띄우고 제대로 구동이 되지 않습니다.

 위 이미지 처럼 TCPOptimizer.exe 꼭 관리자 권한으로 실행 해야 하며,

 UAC 를 최소 이상으로 켜 두신 분들은 이런 경고를 받습니다. 무료에다 그냥 배포 하는 프로그램이라 인증서 같은게 리소스 안에 들어 있을리가 없어서 노란색 표시 인데, "예" 를 눌러 진행 합니다. 여기서 이게 걸리시는 분들은 그냥 끊기는 소리 들으며 득도 하는 길을 걸으시면 되겠죠.

 프로그램을 구동 하면 이런 페이지가 나오면서 powershell 을 실행 해 가며, 네트웍 정보를 얻어 옵니다 ... 아마 이 프로그램은 일일히 사람이 엄청나게 많은 걸 참조 해 가며 노가다 해야 하는걸 대신 해 주는 Front-End 정도로 보면 될 듯 한데, 만드신 분 또는 회사에 감사를 먼저 표 하고 싶습니다.

 처음 실행 하고 나면 뭔가 좀 이상하게 나오는 느낌이 듭니다. 처음에 저도 뭘 해야 하는지 고민을 좀 했는데, 다름이 아니라, 이 프로그램을 만들때 다이얼로그(윈도우) 디자인 리소스 기준을 영어권에 맞춰서 만들어 놔서 윈도우 실제 크기와, 표시 되는 내용이 맞지 않는 문제 였습니다.

 간단히 창 조절을 아래로 좀 늘려 주면 ..

 아래에 메뉴가 있었다는 걸 알 수 있습니다. 이제 소리가 끊겨서 도저히 뭐든 못 해 먹겠다 싶은 분들은 Network Adpator selection 에 있는 콤보 박스에서 자신의 랜카드를 선택 한 다음,

 Choose 에서 Optimial 라디오 버튼을 선택 한 다음, 간단히 Apply changes 버튼을 눌러 줍니다. 이제 지금 설정을 저장할건가와, 확실 한가? 등의 질문을 하는데 ... 기호에 따라 백업 하실 분들은 백업 하셔도 됩니다만, 지금 이걸 하는 이유가 소리가 끊겨서 도저히 참을 수 없어서 한다는 걸 고려하는게 좋을 듯 합니다. 즉, 저는 백업 따위 하지 않고 그냥 진행 했습니다. 어차피 네트워크 카드가 구려서 인터넷도 끊기고, 소리도 끊기고 ....

 이제 재부팅을 하라고 곧 뜨고, 간단히 재부팅을 해 줍니다.

 먼저 요즘 즐기는 Fallout3 를 구동 해 봅니다 ... 한 20초 마다 끊기던 버벅임이 마법처럼 사라졌습니다. 세상에.

 혹시나 해서 LatencyMon 을 구동 해 보니 ..

붉은색으로 실시간 오디오 처리는 힘들 수 있다고 하는데, Highest reported DPC routin 부분이 저렇게 중간에 가 있는게 아니라 끝까지 올라가고 있던 거의 뭘 할때 마다 100ms 씩 먹던 것이 지금 2.4ms 정도만 동작 한다는게 중요 합니다.

 여전히 나쁜데, 이 나쁨이 소리가 끊어지는 사단까지 가지 않는다는 겁니다. 이게 정말 중요 합니다. 사실, 이 ndis.sys 점유율은 금방 ACPI.SYS 가 거의 10ms 넘어가는 점유율로 동작 하게 되는 것에 비하면 정말 세발의 피 입니다.

 조금만 시간이 지나니, 네트웍 보다는 ACPI.SYS 의 구동이 더 큰 문제가 되는데, 사실 ACPI 는 소리가 끊어지는 문제의 원인이 아닙니다.

실제 좀 더 시간을 두고 검사를 해 보면, DPC 를 크게 점유 하고 있는 것은 이제 ndis 가 아니라 ACPI 임을 알수 있습니다. 노트북에 msata 512GB 짜리 SSD 를 일부러 sata600 에 안쓰고 300 으로 낮춰 쓰는데도 이런 점유율을 가지는건 Intel 이 잘못 했더나, 우리 위대한 Microsoft 가 비싼돈 주고 팔아 드시는 Windows 를 개 똥같이 만드신 덕일지도 모르겠습니다. 아니면 둘 다거나.

 확실한 점은 ndis 가 높은 DPC 점유을 가지게 되더라도, 실제 게임을 계속 하거나 할때 (헤드폰으로 듣기 때문에 민감하게 확인이 됩니다) 미친듯이 듬성듬성 끊기던 소리가 이제는 끊기지 않는다는 것 입니다. 유레카!

 100% 확실한 해결책은 아마 Windows 10 에서는 존재 하지 않을 듯 합니다만, TCP Optimizer 를 통해 winsock 관련 값들을 조정하면 (이걸 Windows 2000 에서도 겪은 느낌같은 느낌이 강하게 듭니다만 ?) 놀랍게도 100ms 가까이 DPC 를 점유해서 모든 IO 들이 끊어지던 문제가 이젠 7ms 정도로 낮아 졌다는 것이 중요 합니다. 즉, 소리가 끊기지 않는 다는 점 입니다.

 아직도 외부 흡입기를 달아서 (이걸 때면 10분 뒤 과열로 전원이 차단됨 .. ) 쓰고 있는 Lenovo E320 의 수명을 좀 더 연장 할 수 있게 되었습니다. 게다가 이 구린 노트북으로 Fallout NV 에 여러 모드를 올려서 돌려도 화면 해상도가 720p 로 돌아서 그런지 쾌적 한 것은 ATi Radeon 6700HD 가 아직 제가 즐기는 옛날 게임들 돌리기에 모자람이 없다는 겁니다.

 혹시 네트웍카드, 아니면 사운드 끊김, 비정상 동작으로 고생 하신 분들은 엉뚱하지만 TCP Optimizer 로 winsock 을 조절 해서 그 지옥같은 경험을 끝내실 수 있길 바라겠습니다.