Microsoft 는 지금까지 어떻게 plug-in DLL 파일이 많이 로딩하는 것을 제한했는가?

좋은 주제가 있어서 알리고자 이런 내용으로 글을 씁니다.

 

Microsoft 는 지금까지 어떻게  동시에 많은 plug-in DLL 파일들이  로딩되는 것을 막는 제한 했는가? 

 

사실 우리는 이런 제한이 있는지 모르고 있었습니다.

 

컴퓨터 성능이 더 파워풀해지고, 우리가 쓰는 트랙이 더 많아지고 프로젝트가 복잡해 졌습니다.

 

그러다가 어떤 유저가 어느 수준 이상으로 플러그인들이 불러 들여 지지 않는 다는 것을 발견하였습니다.

 

Microsoft 측에서 시스템에 제한을 걸어 놓은 것을 발견하게 되었습니다. 

 

이것은 FLS (Fibre Local Storage)와 DLL (Dynamic Link Libraries - 본질적으로 플러그인 파일)이 슬롯을 할당받는 방법과 관련이 있습니다. 

 

 

FLS limits on plug-in loading 

(플러그인 로딩에 대한 대한 FLS 제한)

 

Windows에서 사용할 수있는 FLS 슬롯의 수에는 한계가있었습니다. 이 숫자는 128입니다.

지금 128 개 이상의 플러그인이 로드 된 상태에서 테스트 해서 실행해 본 사람들이 많을 것이고, 128 개 이상 플러그인을 불러들여지는데 왜 그러지? 하고 생각하실 겁니다.

네, 맞습니다. 

그런데 FLS 슬롯은 1개의 DLL 파일에 FLS 슬롯이 하니씩  할당됩니다. 

따라서 특정 플러그인 하나만 50개 로드하면 1개의 FLS 슬롯 만 사용됩니다. 

(당연히 사용되는 DLL 파일이 1개 니까 이건 50개 불러도 슬롯이 1개만 사용됩니다. 그런데 128개가 넘는 DLL 파일들 이상이 불러지면 더 이상 서로 다른 DLL 을 윈도우에서 불러 올 수가 없습니다. FLS 슬롯이 모자랍니다)

 

이런 FLS limits 에 도달하려면 실제로 서로 다른 플러그인 들과 가상악기들을 128개 이상 DLL 실행을 해야합니다. 

보통 DAW 자체는 아마도 서로다른 가상악기와 플러그인들을 40 개  정도를 DLL 파일 로드 할 것입니다.

하지만 단일 프로젝트에서 90 가지 또는 128 가지의 DLL 파일로 다양한 플러그인 이펙트 및 플러그인 가상 악기를 전부 동시에 실행하면 어떻게 될까요?

과연 플러그인 들은 하나의 단일 프로젝트에서 최대 몇개까지 불러 올 수가 있을까요?

 

Microsoft 가 점점 복잡해지는 프로세싱 속에서 이런 부족한 address 갯수의 한계를 해결해야 할 문제가 있었습니다. 

2019 년 초반에 출시 될 새로운 Windows 10 업데이트를 통해 FLS 슬롯 한도가 128 -> 4000 으로 획기적으로 높아지게 됩니다. 

이 소식을 새롭게 전할 수 있게 되어 이 글을 씁니다.

 

PC가 더 강력 해짐에 따라 음악가들은 더 많은 트랙, 악기 및 더 복잡한 이펙터 체인을 사용하여 점점 더 복잡한 프로젝트를 만들었습니다. 

그 결과, 일부 뮤지션들은 FLS (Fiber Local Storage) 슬롯 할당 한도를 상회하여 DAW (Digital Audio Workstations)에서 원하는 고유 플러그인들을 작업에 많이 로드하지 못하게 된 것을 발견하게 되었습니다. 

 

이제 이런 제한이 없어졌다는 소식을 전하고 싶었습니다.

 

이전 까지는 시스템에 문제를 일으키지 않도록 FLS (Fiber Local Storage) 슬롯 할당 한도를 제한하여 관리하였습니다.

그리고 메모리에 활당되는 수도 강제적으로 제한을 걸어 두었습니다.

 

곧 새로 업데이트 되는 Windows 10  Build 18312 에서  FLS 슬롯 한도가 128 -> 4000 로  확장에서 이런 제한과 메모리 제한에서 해방되게 되었습니다...그래서 이번에 새로 나오는 Windows 10  Build 18312  업데이트는 반드시 하라고 유저들에게 알리고 싶었습니다.

이 숫자만 해방되어도 더 부드러운 작업을 할 수 있는 유저들이 많이 생기게 될 것입니다.

특히 복잡한 100 트랙 이상의 작업을 하고 많은 가상악기와 많은 서로 다른 플러그인을 사용하는 뮤지션에게는 크게 도움이 될 것 같습니다.

 

아래 개발자 블로그에 자세한 내용이 있습니다

 

마이크로소프트 개발자가 운영하는 개발자 블로그에 올라온 내용입니다

https://blogs.windows.com/windowsexperience/2019/01/09/announcing-windows-10-insider-preview-build-18312/ 

 

 

유저들은 마이크로 소프트가 DAWs, plug-ins and musicians 에게 관심을 가져주어서 감사하다고 포럼에서 표현하고 있습니다.

이런 업데이트로 인해서 더 많은 복잡한 프로젝트를 만들어서 믹스시나 작업시에 더욱 더 뛰어난 작업을 할 수 있게 되었다고 기뻐하고 있습니다. 

It’s great that Microsoft is interested in DAWs, plug-ins and musicians – you don’t feel that very often. And thanks to Microsoft’s Pete Brown for bringing this very cool update to our attention. 

 

 

참고원문

https://ask.audio/articles/this-windows-10-update-will-let-you-run-way-more-plugins-in-your-daw 

https://www.gearslutz.com/board/music-computers/1202511-end-windows-pro-production-fls-limit.html 

http://www.scanproaudio.info/2019/01/10/microsoft-insider-preview-raises-the-windows-fls-limit/ 

17 Comments
제이이 01.12 20:39  
제가 프로그래밍을 그만둔지가 꽤 되고.. MacOS유저다 보니..
이게 맞나 헷갈려서 관련 글을 보고있는데..

아마 지금으로서는
DAW쪽에서는 플러그인 갯수에 따라 프로세스를 나누거나 TLS를 사용하는 방식으로 회피할수도 있을텐데..
모든 DAW가 그렇게 하지 않을 겁니다.

VST 플러그인 개발사들이 정적(Static)이 아닌 동적(Dynamic)으로 빌드해서 피할 수도 있을텐데..
이것도 모두가 그렇게 하지는 않고 있겠죠..


아래 링크는 플러그인 개발 크로스 플랫폼중 하나인 Juce에서 관련 이슈에 대한 글입니다..
https://forum.juce.com/t/important-breaking-change-juce-will-now-use-dynamic-linking-for-the-windows-runtime-by-default/25276
운영자 01.12 20:41  
해외 포럼에서 이번 업데이트에 대해서 다들 환영하는 포스트를 하여

올린 내용입니다

더 전문적인 것을 알고 있으신 분들이 설명 더 잘 해주시면 더 감사하겠습니다

좋은 의견 감사합니다
제이이 01.12 20:56  
좀 더 쉽게 설명하면.. 말씀하신 것처럼 제한이 있고요..
남은 FLS 슬롯 갯수를 확인해보는 VST플러그인도 있습니다..
http://planetnine.jp/wp/2018/03/25/fls-checker/

128슬롯이지만.. VST말고도 DAW내부적으로 사용하는 DLL이 있을 것이므로..
실질적으로 VST의 종류를 불러올 수 있는 한계는 더 적을겁니다.

지금은 최대한 절약하거나 회피하는 방법이 있긴 하지만
사용자가 어떻게 할 수 있는 게 아니라 개발사들이 신경써줘야 되는 상황입니다.
(위 댓글은 이 부분에 대한 것입니다.)

말씀하신 것처럼 업데이트가 되면
개발사에서 신경써주는 여부와 관계 없이 원천적으로 해소될 것 같습니다.
그래서 환영하는 거고요..
amadeusmin 01.12 21:57  
우회하는 방법도 있나요?? 저 제한을 풀수 있는 현 시점에서  우회하는 방법도 있는지요? 궁금하네요
제이이 01.12 22:14  
네.. 다만 사용자가 어떻게 할 수 있는 게 아니라..
개발하는 쪽이 그렇게 만들어 줘야 되는 방법들입니다..

정적/동적 빌드 차이
http://jacking.tistory.com/537 (한국어로 정리하신 분이 있네요)
https://forum.juce.com/t/important-breaking-change-juce-will-now-use-dynamic-linking-for-the-windows-runtime-by-default/25276

FLS초과시 FLS대신 TLS를 쓰려던 Reaper v5.50rc19 버전
실제 정식버전에 적용됐는지는 모르겠네요
https://forums.cockos.com/showthread.php?p=1879741

Reaper에서 플러그인마다 프로세스를 나눠서 브릿지 하는 옵션
이런 방식을 할 수 있는 DAW를 쓰면 가능하겠죠..
https://forum.cockos.com/showpost.php?p=2081322&postcount=23


지금 해당 문제를 겪었을 때 사용자 입장에서는
플러그인 종류를 통일하는 식으로 대처하는 게 나을거에요..

추후 윈도우 업데이트가 되면 이런 개발하는 쪽의 처리여부와 관계 없이 해결되는겁니다.
amadeusmin 01.12 21:22  
fls체커 돌리니까 스튜디오원4는 vst 88개까지 가능하네요. 이거 보니 되게 신기하네요
코끼리코 01.13 05:13  
저도 88개로 나오네요.
진짜 끝까지 로딩해봤는데  88개 다 떨어지니까 로딩불가 뜨는데
웨이브스는  실행안했던 새로운 악기를불러도  로딩 가능하네요
다른 악기도 한번 불렀던건 몇개는 가능하고요
집안 01.12 23:55  
저도 일반 작업자들에 비해 엄청 헤비한 트랙과 체인들을 구성해서 사용하는 편입니다
그런데 제 입장에서는 200트랙 가까운 트랙에 단순 플러그인 개수+플러그인 종류 는 결국 cpu리소스를 해결하는것 (익스포트 쳐야죠뭐..프리즈하거나) 이 정답이었고 그외에는 방법이 없었는데 이부분이 저 제한과도 연관이 있다고 보면 되나요? 실제로 cpu성능이 현재 작동중인 프로젝트를 실제로는 프리징 없이 돌릴 수 있는 성능이였다는 가정하에요 이번 업데이트를 해보면 확실히 알게 되겠지만 이론상으로도 그러했던 것인지 답변 해주실 수 있는 분 계시면 부탁드리겠습니다 '플러그인 갯수를 제한한다 ' 라기보다는 '128개 이상의 플러그인부터는 성능을 제한한다' 로 저는 내용이 받아들여져서요 초반의 내용은 단순히 슬롯개수가 늘어났다 인데 중후반 내용은 믹스가 부드러워지고 수월해질것 이다 인데 128개의 플러그인 종류를 쓴다는건 할당된 슬롯자체를 리미트 까지 썼다라는 액면적인 의미 외에도 가장 중요한 cpu성능이 거의 작업용으로는 슈퍼컴에 가까운 성능의 cpu여야 한다는 뜻으로 해석되기도 합니다
128개의 종류를 떠나서요 100개 정도의 플러그인을 걸면 당연히 시스템 부하가 따라올 텐데요 그만큼의 트랙수 하며 그룹으로 묶이고 억스-센드/오토메이션이며..이미 무거워질대로 무거워 진 프로젝트인데 이게 이번 업데이트에서 많은 부분 개선이 이루어진다는 뜻인가요? 초반 내용인 128개 슬롯이 4000개로 늘어났다는 건 이해가 되는데 이것이 믹스의 부드러운 작업환경으로 이어진다는 것이 조금 이해가 안되서요 실제로  컴 능력은 그대로인데 슬롯개수가 늘어놔뵈야 쓰지 못하는 슬롯 아닌가 싶어서요 제가 처음부터 잘못 이해하고 받아들인 걸수도 있습니다^^;;개인적으로 항상 200개에 가까운 트랙과 많은 플러그인과 시그널 체인으로 무거운 프로젝트를 구성하는 편이고 필연적으로 많은 플러그인들이 걸려있다 보니 항상 컴퓨터 리소스에 허덕이다 보니 궁금증을 해소하는데 정확한 뜻과 의미를 부탁드리고 싶습니다.
운영자 01.13 12:02  
제가 컴퓨터 프로그래밍 개발자가 아니라서 상세히 아주 잘 설명할 자신은 없네요

다만 Microsoft 가 바보가 아니라면 그냥 단순히 숫자만 4000 개로 늘리지는 않았을 겁니다.
(숫자만 늘리면 되는 것이고 별로 어렵지 않은 거라면...프로그래밍시에 숫자만 써놓으면 되니 진작이 업데이트 했을텐데 ...이제서야 하는 것을 보면....4000 개로 늘리기위한 다양한 리소스활용 방법을 고안 연구 했을 거라고 짐작합니다..그리고 왜 4000 개일까요? 숫자가 왜 4000 일까요? 현시점에서 최적으로 활용할 수 있도록 뭔가를 고려한 숫자 이겠지요)

4000 개를 잘 활용하기 위한 리소스 관리부터 동적 할당 등등...4000 개를 효율적으로 운영하기 위한 별도의 프로그래밍 조치를 하였을 것입니다.

일단 최대 한계를 개방했기때문에...

다른 DAW 나 플러그인 개발사들도 fls 슬롯에 관계 없이 더 복잡하고 성능이 뛰어난 플러그인을 개발할 수 있게 된 것도 좋다고 생각합니다.

더 복잡하고 수준 높은 플러그인 일수록 fls 슬롯을 많이 차지 하는데....그 한계를 늘렸으니 ...그에 맞게 더 고 성능의 플러그인 개발도 앞으로 가능하지 않을까 싶습니다. DAW 회사도 시퀀서 만들때 128 이라는 제한 때문에...자신들이 더 확장을 못했을텐데...이 업데이트가 나오면 자체 DAW 자체에서도 4000 개에 보조를 맞추는 업데이트를 하지 않을까 기대 됩니다.

어찌되었건 뮤지션들이 많이 쓰는 부분을 마이크로 소프트가 드디어 신경을 써줘서 더 발전할 기회가 왔다는 것은 확실한 것 같습니다.
집안 01.13 13:22  
그렇군요 ㅎㅎ 이번에 자게에 올라온 i9cpu 의 DAW 유저를 위한 테스트 글도 그렇고 이런 리뷰들이 개인적으로 요세 리뷰글들에 좀 지친 저한테는 신선하고 진짜 두근거리면서 읽어보게 되네요 항상 감사합니다 ^^
운영자 01.13 13:34  
요즘 마케팅 리뷰들때문에 좀 지치는 부분이 있어서

저희도 마케팅이 전혀 없는 리뷰...

실질적으로 유저들에게 도움이 되는 신선한 내용을 리뷰를 찾아서 올릴려고 하고 있습니다

그래서 저희가 먼저 올리니 다른 유저분께서도 응답하듯이 컴퓨터 관련 해외 테스트 기사를

완전히 번역하셔서 그대로 올려주셔서 지금 감사해 하고 있습니다

이런 마케팅과 관계 없이, 좋은 정보의 리뷰에 많이 올라와야 커뮤니티도 살고 유저들도  실질적으로 도움이 되고

그래야

좋은 환경의 커뮤니티 사이트가  될 것 같습니다
AcidMoon 01.13 02:56  
DAW마다 (또는 사용자마다) 처음 구동시 유효한 FLS 슬롯 수가 다르고 플러그인마다 사용하는 FLS 슬롯 수도 다릅니다.

Arturia Analog Lab 3 / 40개 이상
iZotone Ozone 8 / 6~12개
NI Battery 4 / 2개
reFX Nexus 2 / 1개
Slate Digital VMR / 2개
Spectrasonics Omnisphere / 7개
Soundtoys Effect Rack / 2개
Xfer Records Serum / 1개
Waves / 2개 (Waveshell을 통해 구동되므로 수많은 Waves 플러그인을 불러와도 총 2개만 사용)
UAD-2 / 2 ~4개

FLS 슬롯 수가 128개를 초과하면 CPU나 메모리가 충분함에도 불구하고 더 이상 플러그인(DLL)을 불러올 수 없습니다. Windows 10 Insider Preview Build 18312로 이 문제가 해결되는 것이며 차후에 4000개가 한계에 도달하는 날이 오면 더욱 늘릴 예정이라고 합니다.
운영자 01.13 11:58  
깔끔한 내용 정리 감사합니다

AcidMoon 님 내용을 보면, 위의 일이 정확히 정리되니

많은 분들이 쉽게 이해를 하실 수 있을 것 같습니다

AcidMoon 님께는 항상 감사를 표현하고 싶네요

유저들에게 좋은 도움이 되는 글을 올려주셔서 유저들읠 대표해서 감사 말씀 드립니다.
AcidMoon 01.13 13:55  
추가로 동일한 플러그인의 여러 인스턴스가 더 많은 FLS 슬롯을 사용하지는 않습니다. (대신에 CPU, 메모리를 소비) 다수의 다른 플러그인을 사용하는 사람들을 위한 업데이트입니다. (예: FLS 슬롯 1개를 사용하는 Serum을 100개 이상 불러와도 총 1개의 FLS 슬롯만 사용)

DAW / 플러그인 개발자는 이 변경을 이용하기 위해 아무 것도 할 필요가 없습니다.
운영자 01.13 17:09  
이 업데이트로 ... 어떤 성능의 향상이나 이런 것은 전혀 없을까요?

그냥 단순히 숫자만 늘어서 아주 큰 프로젝트의 작업을 하면서 다수 플러그인을 사용하는 사람들에게만 혜택이 갈까요?

궁금해서 여쭈어봅니다 상세히 잘 아시는 것 같아서...

저도 이런 테크 이야기가 관심이 많거든요..
AcidMoon 01.13 18:15  
특별히 다른 이점은 없고 다수의 다른 플러그인을 사용하는 사람들에게 도움이 되는 업데이트입니다. 128을 초과하더라도 다른 문제가 발생하지는 않습니다. 추가로 다른 플러그인을 불러오지 못할 뿐입니다.

"Visual C ++ 런타임에 정적으로 연결된 수백 또는 수천 개의 고유 DLL을 동적으로 불러오거나 FLS 슬롯을 할당하는 모든 응용 프로그램에 긍정적인 영향을 미칩니다."

이 내용은 직접적으로 알 수 없는 부분이라...
운영자 01.13 20:47  
아 넵 답변 감사합니다^^
Banner
 
Facebook Twitter GooglePlus KakaoStory NaverBand