IIS 및 .NET을 Cherokee 및 Mono와 비교하여 성능 수치를 얻은 사람이 있습니까?

IIS 및 .NET을 Cherokee 및 Mono와 비교하여 성능 수치를 얻은 사람이 있습니까?

개발 서버를 설정 중이며 Mono를 사용하여 ASP.NET 페이지를 제공하도록 설정하고 싶습니다. Cherokee와 Mono(http://www.cherokee-project.com/doc/cookbook_mono.html) Unix 기반 스택과 Windows 기반 스택을 비교하는 성능 테스트를 수행한 사람이 있는지 궁금했습니다.

답변1

Mono/Linux와 .NET/Windows 워크로드를 테스트할 때는 런타임 환경보다 더 많은 것이 있다는 점을 기억해야 합니다.

Linux가 Windows보다 더 나은 성능을 발휘하는 영역이 있습니다(대부분의 IO 및 네트워크 작업은 유사한 C 프로그램에서 더 빠른 경향이 있습니다). 동시에 .NET에는 고급 가비지 수집기와 고급 JIT 컴파일러가 있습니다.

클래스 라이브러리의 경우 실제로 사용하는 코드 경로에 따라 다릅니다. JacksonH가 이전 게시물에서 말했듯이 한 구현에서는 최적화되었지만 다른 구현에서는 최적화되지 않은 코드 경로에 도달할 수 있으며 그 반대의 경우도 마찬가지입니다.

ASP.NET 워크로드에서는 기본 설정이 들어오는 모든 요청을 단일 "작업자" 프로세스로 라우팅한다는 점을 기억해야 합니다. mod_mono와 Cherokee는 비슷한 접근 방식을 사용합니다.

다수의 HTTP 서버를 하나의 mod-mono-server로
(원천:mono-project.com)

최소한 Apache를 사용하면 애플리케이션 작업 부하를 여러 작업자로 나눌 수 있는 메커니즘을 지원합니다. 이는 프로세스 내 잠금을 방지하고 각 작업자에게 작업할 전체 스레드 풀을 제공하므로 부하가 높을 때 도움이 됩니다.

mod_mono를 사용하여 다른 ASP.NET 호스트로 요청 라우팅
(원천:mono-project.com)
이 설정을 구성하는 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

http://mono-project.com/Mod_mono

답변2

이건 좀 답이 없습니다. 그러나 여기에는 실제 답이 없습니다. 불행히도 이것은 응용 프로그램에 따라 크게 달라집니다. 귀하의 앱은 Mono가 정말 잘하는 일에 부딪힐 수도 있고, 제대로 구현되지 않았거나 버그가 있는 일을 과도하게 사용할 수도 있습니다. 실제로 Mono가 IIS보다 X배 느리거나 빠른 경우는 아닙니다.

내 제안은 앱을 가져와 두 개의 서로 다른 EC2 인스턴스(Windows 하나와 Mono 하나)에 배포하고 거기서 테스트하는 것입니다. Mono 인스턴스에서 심각한 문제를 발견한 경우 보고해 주시면 개선하도록 노력하겠습니다.

말하자면, 저는 개인적인 경험을 통해 Mono aspx가 정말 잘 수행된다는 것을 말씀드릴 수 있습니다.

관련 정보