최근 유튜브에서 에드블록을 함께 사용했을때 컴퓨터가 느려진다는 사용자가 있었다. 필자는 에드블록을 사용하지 않지만 (그깟 광고 봐주지라는 생각이다. 광고도 재미있으니깐) 이와 관련된 글 타래가 있어 내 생각을 정리해 보았다.
1. 에드블록은 불법 툴이라는 주장
일단 해당 툴이 유튜브의 허가를 받지 않고, 유튜브 서비스를 바꾸는 툴인건 맞고 유튜브의 영업행위를 방해하는 행위를 하는건 맞다.
하지만 툴 개발자는 법적으로 문제 없다. 단순히 개발해 배포한거기도 하고, 사용자의 사적 공간에서 작동하는 툴이고 타 사용자에게 영향을 주지 않기 때문이기도 하다. 굳이 문제를 삼자면 그런 툴을 사용하는 사용자가 문제인데, 유뷰브가 사용자에게 패널티를 줄 리는 없으니 이슈 없는것처럼 보일 뿐이다. 즉 툴을 개발하고 배포하는건 문제가 안되고, 툴을 사용하는건 문제가 되지만, 사용하는 사람을 처벌할리는 없다.
2. 유튜브 개발자가 에드블록 사용자를 배려해서 문제 없이 만들어야 한다는 주장
유튜브 개발자가 그걸 왜 신경써야 하는지 모르겠다. 자신들의 허락을 받지 않은 툴이기 때문에, 에드블록 프로그램을 고려해야할 이유가 전혀 없다.
특히 에드블록 측에서 유튜브 측에 작동 원리를 알려주지 않았기 때문에/알려줄리 없기 때문에 유튜브에서도 대응할 수 없다. 대응해서도 안된다.
오히려 에드블록 측에서 사용자의 유투브 사용을 방해한거니 문제가 될거같다.
3. 내가 인터넷 비용을 내었으니 에드블록을 설치한 채로 유튜브 서비스를 이용하는게 합법이다.
인터넷 비용은 유튜브에 내는게 아니다. 이 이슈와는 관련 없는 글이다.
4. 유튜브가 프리미엄으로 폭리를 취하고 있으며 광고가 너무 자주 뜬다.
그거랑 광고제거툴을 쓰는 바람에 PC가 느려진 거랑 뭔 상관인지 모르겠다. 이 이슈와는 관련 없는 글이다. 왜 에드블록을 쓰는지에 대한 답변으로 생각되는데 그거 물어본게 아니다.
5. 잘되다가 안된거다. 유튜브가 사용자 몰래 바꾼거다.
원래 사용자에게 고지하지 않고 프로그램 바꾼다. 유튜브 뿐만 아니라 다른 서비스나 앱도 마찬가지다. 이게 문제라고 생각하는건 아니겠지. 하루에도 몇번씩 바꾼다.
----
에드블록이 유튜브와 문제를 일으켰으면 에드블록 개발자에게 버그신고해서 에드블록을 패치하면 될일이다. 애초에 에드블록은 유튜브에 허가받지 않은 프로그램이라 유튜브 서비스에 사용하면 안되고, 툴 사용으로 인한 이슈는 사용자가 책임 지도록 되어있는데 말이다. 유튜브와 에드블록 약관 읽어봐라. 정독해봐라. 유튜브와 에드블록을 사용하고 있다면 이미 약관에 "동의"한 상태인데 왜 이걸 문제삼는지 모르겠다.
- M.2 는 한때 NGFF(Next Generation Form Factor)라 불렸던 차세대 폼 팩터에 사용된 커넥터 사양이다. M.2 는 mSATA 표준을 대체하고, PCIe Mini Card 와 동일한 규격의 커넥터 규격을 사용한다. 2013년 부터 도입되었으며 10여년이 지난 지금은 널리 사용되고 있다.
- 요즘엔 주로 카드 형식의 SSD 를 연결할때 사용하는 형식이다.
2. M.2 SATA
SATA 방식 M.2 SSD. B 키와 M 키가 있다.
- M.2 커넥터로 SATA 통신을 하는 규격이다. 운영체제에서는 AHCI 컨트롤러에 연결된 SATA 하드디스크로 인식된다. M.2 초창기에는 주로 사용되던 형식이었으나, 현재는 성능상의 문제로 사용하지 않는다. M.2 SATA 형식의 SSD 를 사용할 때에는 마더보드에서 지원하는지 반드시 확인해야 한다. 최대 600MB/s (SATA 3규격과 동일)까지 지원된다.
3. M.2 PCIe
- M.2 커넥터로 PCIe 통신을 하는 규격이다. 하지만 PCIe 위에 AHCI 컨트롤러가 자리잡고 있기 때문에 운영체제에서는 AHCI 컨트롤러에 연결된 장치로 인식한다. 구형 마더보드에서는 지원하지 않는 경우도 있어 이 형식의 SSD를 사용하는 경우 반드시 확인해야 한다. 보통 PCIe 2.0 x4 속도까지 지원했다.
4. M.2 NVMe
NVMe 방식 M.2인 T705. M키만 있다.
- M.2 커넥터로 PCIe 통신을 하는 규격이다. 하지만 운영체제에서는 NVMe(Non-Volatile Memory Express) 장치로 인식된다. 어쨌든 PCIe 규격으로 통신하기 때문에 PCIe 규격과 호환된다. M.2 PCIe 와 M.2 NVMe 와의 차이점은 운영체제 레벨에서 어떻게 인식되느냐에 있고, 이때문에 지원하는 속도가 NVMe 가 훨씬 빠르다. NVMe 는 AHCI 보다 대기열의 명령큐가 증가(32 -> 64K)하고, 다중 대기열 사용할 수 있으며, CPU에서 직접 접근해 레이턴시(지연)가 낮고(6ms -> 2.8ms), 운영체제에서 더 빠른 드라이버를 사용할 수 있어 AHCI에 비해 IOP향상(100k -> 1M IOP)이 가능해지는 등의 많은 이점이 있다. PCIe 3.0 x4 속도 이상 되는 SSD는 모두 이 방식이다. NVMe PCIe 3.0 x4 의 경우 3,940MB/s 까지 지원된다.
5. 2230, 2242, 2260, 2280, 22110
- 카드의 크기다. 22 는 22 mm 을 의미하며 카드의 너비다. 30, 42, 60, 80 은 카드의 길이이며 단위는 mm이다.
- 너비가 22mm 규격 이외의 것도 M.2 에 정의되어있지만 PC에서 사용되는 규격은 22 만 있다. 많은 마더보드에서 2242 ~ 2280 까지 지원한다. 2230 과 22110 규격의 기기를 사기 전에 마더보드에서 장착되는지 반드시 확인해야 한다.
6. 방열판
NVMe 형태의 SSD는 발열이 있다. 연속해서 많은 데이터를 읽고 쓰는 경우에는 무시하기 어려울 정도로, 발열때문에 성능이 하락할 정도로 열이 심하다. 따라서 이런 경우에는 방열판이나 액티브 쿨링을 사용해야 한다.
방열판이 장착된 Crucial T705
7. Key
- M.2 장치에는 Key(키)라고 불리는 부분이 있다. 일종의 홀인데 지원하지 않는 기기를 장착하지 못하도록 키의 위치를 달리해 제조한다.
- A ~ M 까지 있는데 데스크탑 M.2 저장장치에서 중요한건 B 와 M 키다. B 키는 SATA 및 PCIe x2 방식에 사용되고, M 키는 SATA 및 PCIe x4 방식에 사용된다. 최신 NVME SSD 는 PCIe x4 가 필요하기 때문에 M 키만 뚫려있다.
- A 키와 E 키는 PCIe x1 을 지원하기 때문에 WiFi 나 블루투스 기기에서 주로 사용된다.
8. Socket
- Socket 은 7. 에서 설명한 Key 와 같은 의미인데 호스트의 관점에서 본다. 마더보드 스펙에는 Socket 으로 표기되어있다.
- Socket 1 ~ 3 까지 있다.
→ Socket 1은 Wifi 및 블루투스 → Socket 2는 WWAN, GNSS, SSD Cache → Socket 3은 SATA 및 PCIe 방식의 저장장치
따라서 저장장치에서는 Socket 3를 사용한다.
9. 대역폭 공유 및 장치 공유
M.2 에 SATA 모드로 사용시 특정한 SATA 소켓이 비활성화 되거나 M.2 에 PCIe/NVMe 모드로 사용시 특정한 PCIe 슬롯이 비활성화 되는 경우가 있다. 어느 부분이 어떻게, 얼마나 줄어드는지는 마더보드 매뉴얼을 읽어보자.
10. DRAM
플래시 메모리기반 저장장치는 각 셀의 사용 정보(각각의 셀이 쓰기를 몇번 했는지, 수명이 다된 셀은 몇번으로 대체되었는지에 대한 정보)를 기록해 놓는데, 이 정보는 셀이 변경될때마다 매번 바뀌어야 하고, 특히 셀 대체 정보는 셀에서 데이터를 읽고 쓸때마다 계속 참조해야 한다. 아무래도 플래시메모리보다는 DRAM 이 더 빠르기 때문에 DRAM 을 사용해 속도향상을 도모한다. DRAM 이 없으면 속도가 2000 MBps 정도가 한계고 매핑이 발생한 순간부터는 매우 느려진다. SSD 에서 오래써도 성능저하를 줄이려면 DRAM 은 필수인셈.
HDD 에서는 DRAM 이 버퍼로 사용되지만, SSD 에서는 매핑 정보를 담아 빠르게 참조할 수 있는 저장공간으로 사용된다는게 다르다.
11. SSD 수명
SSD 는 수명이 정해져 있다. 셀당 쓰기가 일정한 회수 이상은 쓰기가 안된다. 수명이 다 된 셀은 매핑해서 다른 셀로 대체해 사용한다. 대체할 셀 조차 없으면 SSD 는 더이상 사용할 수 없다.
이렇게 이야기 해도 일상적인 사용환경에서는 10년 이상 사용할 수 있다.
수명 확인은 S.M.A.R.T. 정보를 읽어오는 프로그램을 사용해 확인할 수 있다. 아래 스크린샷의 왼편에 99% 라고 써 있는게 수명이다. 스크린샷의 오른편의 읽기/쓰기량이 많아질 수록 급격하게 수명이 깎인다. 일년에 한번정도는 확인하는게 좋다고 생각한다. 0% 떨어지면 못 사용하니 그 전에 바꾸자. 50% 만 되어도 매핑이 많아져서 성능 하락이 쉽게 느껴진다.
※ 마더보드 스펙 읽기
아래 매뉴얼을 보면
- M.2 Socket 3 타입의 소켓 2개가 있고, M 키를 지원한다.
- M.2_1 포트는 32Gb/s 로 작동한다. M.2_2 포트는 16Gb/s 으로 작동한다.
- M.2_1 이 SATA 모드로 작동할때에는 SATA_1 포트가, M.2_2 이 SATA 모드로 작동할 때에는 SATA_6 포트가 비활성화 된다.
- PCIe 모드로 작동할때에는 비활성화 되는 기기에 대한 언급이 없다. 마더보드에 사용된 칩셋의 대역폭이 충분한경우 비활성화 되지 않는다.
SDXL 이 공개(2023.07.28)된지 약 6개월이 지났다. 필자는 아직 SD1.5를 주로 사용하고 있지만, SDXL 도 점점 사용회수를 늘이는 중이다. SDXL 을 사용하면서 선명도 때문에 언젠간 SD1.5 에서 SDXL 으로 전환해야 한다는 생각은 하고 있지만, SD1.5 도 6개월 전에 비해 많이 발전했기 때문에 전환할 일정은 좀 나중이 될거 같다. 아직도 에니메이션 풍의 그림은 SDXL 보다 SD1.5가 더 좋다. 아니면 최종적으로 병행해 사용하거나 말이다.
SDXL 으로 그린 그림. 선명한 그림을 그릴 수 있어 좋지만, 아직 에니풍의 화면은 무리다.
- 현재 SD WebUI 에서 SDXL 을 원활히 사용하기 위해 필요한 메모리 양은 윈도11의 경우 시스템 메모리 24GB 이상, VRAM 12GB 이상이다. CPU 는 크게 상관 없다. 듀얼코어에서도 크게 문제 없다.
- VRAM 이 8GB 인 경우에도 문제 없이 실행해볼 수 있다. --medvram-sdxl 옵션을 사용해야 한다. 시스템 메모리는 조금 많아야 한다.
- VRAM 이 4GB 인 경우에도 --lowvram 옵션을 사용해 실행할 수 있다. 해보지는 않았다.
- 반드시 nVidia 드라이버 최신 버전 사용하고, 리눅스사용할 경우 tcmalloc 반드시 사용하도록 하자.
- 스토리지가 많이 필요하다. 체크포인트만 해도 최소 6GB 이고, LoRA 파일의 용량도 SD1.5 에 비해 평균적으로 3배는 크다.
- SD1.5 에 비해 생성할 이미지의 해상도를 늘여야 하기 때문에 그만큼 느리다. 필자는 SD1.5 는 512x768, SDXL 은 832x1216 을 기본 해상도로 사용하고 있다. 그만큼 메모리 많이 먹는다.
- 필자는 현재 SD WebUI 에 "--xformers --no-half-vae" 옵션만 붙여서 사용하고 있다.