2020/11/20

, ,

Windows CompactOs에 대한 고찰, 그리고 성능

Windows CompactOs와 러시아산 Compact OS에 대한 고찰, 그리고 성능

Windows CompactOs, Russian Compact OS, and performance
<오늘 테스트에 사용한 자작 Windows Server 2019 Compact 한국어판>

러시아 Compact OS에 대한 진실과 오해

• 러시아산 Compact OS에 대해 추측했던 내용과 오늘 테스트 결과

─ flblauncher의 Compact OS는 Windows에 내장된 Compact.exe와 다른 압축 알고리즘을 사용한다? -> 틀림

─ CompactOs는 윈도우 성능을 저하시킨다? -> (거의) 틀림

─ flblauncher의 Compacat OS는 Windows의 /CompactOs:always보다 압축률이 높다? -> 맞음

오늘 몇 가지 테스트를 통해 ─ 내 블로그에서 몇 번 소개한 적이 있는 prog-top.net에서 배포하는 ─ flblauncher를 이용한 러시아산 Compact OS와 Windows에 내장된 파일 압축 프로그램인 Compact.exe을 사용한 Compact OS에 대한 오해와 진실을 알게 되었다.

나만의 윈도우 10 Compact 버전 제작하기」를 작성하면서 추측했던 것과는 달리 flblauncher는 별도의 압축 알고리즘이 아닌 Compact.exe를 이용한다. 그 증거로 flblauncher로 설치한 Compact Windows일지라도 'compact /CompactOs' 명령으로 압축된 상태를 확인할 수 있다. 또한, flblauncher는 [Program Files (x86)] 안의 Windows 관련 폴더도 압축한다.

Windows CompactOs, Russian Compact OS, and performance
<flblauncher의 1.5GB 정도의 크기를 더 줄여주는 [Тотальная кастрация хранилища WinSxS] 옵션을 선택하면, 윈도우 업데이트가 안 된다. 고로 이 옵션을 사용하고자 하는 사람은 wim 파일에 최신 윈도우 업데이트를 적용해놓을 필요가 있다.>

그렇다면 두 Compact OS 사이의 압축률 차이는 어디서 나는 것일까?

그것은,

Compact.exe /CompactOs:always

명령어를 이용한 압축은 윈도우 기본값인 XPRESS4K 압축을 사용하는 데 반해 flblauncher는 이보다 압축률이 높은 XPRESS16K(또는 XPRESS8K)를 사용하는 것으로 보인다. 고로 XPRESS4K 압축만으로도 충분하다고 생각하는 사람은, 그리고 flblauncher의 트윅 기능이 필요 없다면 순정 윈도우 설치 완료 후 Comapct 명령어로 OS를 압축하면 된다.

하지만, 좀 더 높은 압축률이 필요하거나 극강의 옵션인 [Тотальная кастрация хранилища WinSxS (WinSxS를 100MB 이하로 유지한다는 살 떨리는 옵션으로 윈도우 업데이트가 안 된다! )]을 원하는 사람은 flblauncher을 이용해야 한다. CompactOs:always는 오직 XPRESS4K만 지원하고, Windows 폴더는 일반적인 compact 명령어로 압축할 수 없기 때문이다.

XPRESS4K 압축이 윈도우에서 권장하는 성능과 압축률 모두를 고려한 균형적인 설정이다. 하지만 테스트 결과 비압축, XPRESS4K, 그리고 XPRESS16K의 성능 차이가 생각보다 크지 않다는 것을 알게 되었다.

참고로 CompactOs:always 압축은 추가되는 새 파일은 압축되지 않는다. 훗날 Windows 폴더 크기가 많이 증가했다고 생각하면, 압축을 풀고 재압축하는 것도 한 방법이다.

[테스트 환경]

• Host Spec: AMD A10-4600M, 8G, Tammuz GK600 Prime 250G, Windows Server 2019

• VMware v16.0 settings: Windows Server 2019 updated oct 2020 Compact(자작), 2CPU, 2G Ram, 20G dynamic HDD(On SSD)

• PCMark 7 v1.4.0

Compact OS가 윈도우 성능에 미치는 영향

Windows CompactOs, Russian Compact OS, and performance

나만의 윈도우 10 Compact 버전 제작하기」에선 간접적인 비교를 통해 CompactOs가 윈도우, 특히 애플리케이션 실행 속도에 부정적인 영향을 미칠 것으로 추측했었는데, 오늘 직접적인 테스트를 통해 XPRESS4K~8K 압축률 정도면 윈도우 성능에 거의 영향을 끼치지 않는다고 결론내려도 좋을 것 같다(테스트 환경이 지극히 낮은 사양인 것도 잊지 말자!).

오히려 일부 벤치마크 항목에선 Compact가 성능 향상을 가져오는 놀라운 결과도 보여주었다.

PCMark 7 폴더 Compact 테스트

Windows CompactOs, Russian Compact OS, and performance
<CompactGUI를 사용하면 Compact 사용이 한결 편리해진다>

이번엔 PCMark 7 폴더를 ─ Compact.exe를 좀 더 편하게 사용할 수 있는 ─ CompactGUI를 사용해 압축하고 그에 따른 PCMark 7 Lightweight score, 벤치마크가 진행되는 동안의 평균 CPU 사용률과 디스크 최대 읽기 • 쓰기 속도를 점검해봤다.

Windows CompactOs, Russian Compact OS, and performance

예상대로 XPRESS4K이 가장 낮은 압축비(압축비 1.69)를 보여주었고, LZX가 가장 높은 압축비(2.0)를 보여주었다.

XPRESS4K와 LZX의 차이가 생각보다 크다. 참고로 LZX 압축은 추가되는 새 파일을 압축하지 않는다.

Windows CompactOs, Russian Compact OS, and performance

PCMark 7 폴더 압축 설정에 따른 Lightweight score 점수 차이는 의외로 크지 않다. 애플리케이션 실행 속도를 측정하는 [System storage - starting applications]을 제외하면 눈에 띄는 차이는 없다. 오히려 XPRESS4K보다 압축률이 높은 XPRESS8K와 XPRESS16K가 프로그램 실행 속도 면에서는 더 우수했다.

테스트 환경인 듀얼 코어, 즉 낮은 사양에서도 XPRESS4K~16K에 따른 성능 저하는 무시해도 될 정도다. 다음 문서의 [Spoiler: Adobe Photoshop CC 2017 Performance] 결과도 이러한 결과를 뒷받침한다. 「CompactGUI - Easily reduce the footprint of programs and games on Windows 10

Windows CompactOs, Russian Compact OS, and performance

폴더 압축된 PCMark 7의 테스트가 진행되는 동안의 평균 CPU 사용률은 압축률이 가장 높은 LZX가 살짝 높다. 그렇다 하더라도 이 정도면 무시할만하다.

Windows CompactOs, Russian Compact OS, and performance

폴더 압축된 PCMark 7의 테스트가 진행되는 동안의 최대 디스크 읽기/쓰기 속도 값이다. 바로 위 CPU 사용률과 이 값만을 놓고 보면 XPRESS8K가 최적의 설정으로 보인다.

Compact와 SSD 쓰기 수명

Windows CompactOs, Russian Compact OS, and performance
<Compact를 사용해도 압축 효율만큼의 SSD 쓰기 절약은 없다>

Compact 설정된 드라이브나 폴더로 파일을 복사하면, 자동으로 압축되어 저장된다. 그렇다면 앞서 테스트에 사용된 459MB의 PCMark 7 폴더를 Compact XPRESS4K로 설정된 폴더로 복사하면, 272MB로 압축되어 저장될 것이니 187MB만큼의 SSD 쓰기 수명을 절약할 수 있다는 말이다.

하지만, 테스트 결과는 그렇지 않았다. 274MB 크기의 폴더를 Compact(XPRESS4K) 설정된 드라이브로 복사했더니 explorer.exe의 쓰기 바이트는 275MB를 기록했다. 고로 윈도우는 Compact 폴더에 새 파일을 생성되거나 파일을 복사하면 일단 압축하지 않은 상태로 파일 쓰기를 완료한 다음 압축하는 것으로 보인다. 그 대신 Compact 명령으로 압축을 해도 explorer.exe의 쓰기 바이트는 증가하지 않았다. 압축으로 인해 별도의 SSD의 쓰기가 소모되지는 않는다는 말이다.

Compact와 쓰기 속도

Windows CompactOs, Russian Compact OS, and performance
<Compact 사용했을 때>
Windows CompactOs, Russian Compact OS, and performance
<Compact 사용하지 않을 때>

PCMark의 응용 프로그램 실행 속도 등 지금까지의 테스트 대부분은 읽기 속도와 관련이 있다. 그래서 이번엔 1GB짜리 VHD를 만들어 Compact(XPRESS4K) 여부에 따른 SSD 속도 차이를 CrystalDiskMark를 이용해 벤치마크했다.

Compact 여부에 따른 읽기 속도는 변화는 없다고 봐도 무방할 정도로 미미했다. 하지만, 쓰기 속도는 확실히 낮아졌음을 알 수 있다. 그렇다고는 해도 생각보다 성능 하락 폭은 크지 않으며, 이 정도면 일반적인 컴퓨터 환경에선 무시해도 좋을 정도다. 왜냐하면, 포토샵 같은 응용 프로그램(Windows 폴더도 마찬가지)의 폴더를 압축할 텐데 이런 경우는 쓰기 속도보단 읽기 속도가 더 중요하기 때문이다.

하지만, Temp 폴더나 동영상 편집용 작업 폴더 같은 쓰기 작업을 많이 해야 하는 폴더를 압축한다면 약간의 성능 하락을 체감할 수 있을 것이라 예상된다.

결론

사실 오늘 테스트는 [Windows Server 2019 Compact 한국어판]을 제작하는 과정에서 flblauncher를 사용한 Compact OS와 Windows에서 CompactOs:always 명령을 이용한 Compact OS와의 차이점이 있을까 하는 의문에서 수행한 것인데, 압축률이 높아도 시스템에 주는 부담이 거의 없다는 점에서 SSD 용량을 좀 더 여유 있게 사용하고자 하는 사람에겐 flblauncher Compact OS는 좋은 선택이다. 윈도우 업데이트를 포기한다면 막장 옵션인 [Тотальная кастрация хранилища WinSxS]을 사용하여 1.5GB 정도를 더 절약할 수 있다. 하지만, 이 방법이 어렵다면 Windows에서 Compact 명령으로 압축한 Compact OS도 괜찮은 선택이다.

그뿐만 아니라 오늘 테스트 결과는 듀얼 코어 이상, 그리고 SSD 사용자라면 Compat 설정이 컴퓨팅 성능에 거의 영향을 미치지 않는다는 점을 보여준다. 때론 놀랍게도 Compat 압축이 프로그램 실행 속도 향상을 가져올 수도 있음을 보여준다.

SSD 수명에 미치는 영향을 제외하고는 Compact 설정은 꼭 SSD 용량이 부족한 사람이 아니더라도 공간을 효율적으로 사용하기 위해 고려해볼 수 있는 좋은 선택이다. 가끔 사용하는 계륵 같은 프로그램들이 차지하는 공간을 절약할 수도 있다. 특히 PCMark 7 테스트가 진행되는 동안의 평균 CPU 사용률과 최대 디스크 읽기/속도 값은 윈도우 기본값인 XPRESS4K보다 XPRESS8K가 최적의 값이 될 수도 있음을 보여준다.

Compact 사용이 SSD 컨트롤러 수명에 영향을 미칠 수 있다고는 하지만, 이제는 누구나 다 SSD 컨트롤러나 SSD 플래시 메모리의 수명이 다하기 전에 ─ 하루가 다르게 가격이 하락하는 상황으로 인해 ─ SSD를 교체하게 될 것이라는 사실을 알고 있다. 나 역시 수명의 절반도 쓰지 못한 128GB SSD가 책상 서랍 어딘가에 고이 잠들어 있다.

밀물처럼 서서히 압박해오는 SSD 용량 부족 때문에 스트레스받기보다는 Compact를 적절하게 사용해 그 스트레스를 조금이나마 덜 수 있다면, 이것이야말로 임도 보고 뽕도 따는 격이 아니겠는가, 싶어 아주 긴 글을 두서없이 펼쳐보았다.

비록 보잘 것 없지만 광고 수익(Ad revenue)은 블로거의 콘텐츠 창작 의욕을 북돋우는 강장제이자 때론 하루하루를 이어주는 즐거움입니다

Share:

0 comments:

댓글 쓰기

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요