2011-01-04 2 views
4

modo_mono에서 모노 2.8.1로 ASP.NET MVC2 응용 프로그램을 실행 중이며 현재 아파치가 새어 나가고있는 것으로 보이는 세마포 배열을 주기적으로 제거해야합니다. mod_mono를 실행할 때 아파치가 새어 나옴

나는 모노 RPM의 2.6.7 다시 잠시 동안 시작하지만 모두 누출 세마포어 배열에 몇 가지 문제를 가지고 있었다 (즉, 더 많은 IPCS 축적)와 ASP.NET MVC2 일부 호환되지 않는, 그래서 2.8을 내장 출처에서. 누수가 계속되었으므로 원본에서 2.8.1을 만들었고 동일한 문제가 여전히 발생하고 있습니다. 이것은 아마존 AMI에있다 (나는 그것이 두포의 아래의 centos다고 생각한다). 그 증상은 세마포어 어레이가 계속해서 생성되고, 수동으로 제거하지 않으면 ipcrm 잠시 후에 ASP.NET 페이지에 대한 요청이 로그에 오류없이 내용을 반환하지 않는다는 것입니다. 나는 또한 같은 문제를 centos 5.4 AMI에서 재현했다.

apache/mod_mono에서 ASP.NET을 성공적으로 실행하는 사람이 있습니까? 이후 내가 다른 사람에게 이런 일이 일어나는 것에 대해 언급 할 수는 없으므로 일반적인 ASP.NET 버그가 아니라고 생각합니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

내 프로덕션 서버에서 mod_mono를 사용하고 있습니다. (그다지 많지 않습니다. 아무도 방문하지 않는 4 개의 사이트를 호스팅하고 있습니다.) 그리고 어떤 문제 나 누출을 발견하지 못했습니다. 키워드는 notice입니다. 그러나 나는 2.8에 문제가있어서 Mono 2.6.7로 되 돌렸다. 2.8 문제가 해결되지 않는다면 다시 전환을 고려해야합니다. 나는 모노, XSP, Mod_Mono 및 GDIplus의 최신 2.6. *을 사용하고 있습니다. 원래는 모노를 다운 그레이드했지만 믹스를 좋아하지는 않았다. –

답변

8

마지막으로 해결책을 찾았지만 다른 경고를 따르지 않는 실수를 범할 수 있습니다. 다른 사람에게 유용 할 것입니다.

Include conf.d/*.conf 
User apache 
Group apache 

즉 : 기본 아파치 설정으로

는 아래의 구성 순서가 httpd 사용자와 그룹이 설정되기 전에 모든 conf 파일 (보통 vhost가 정의 된 곳)이로드됩니다. 이것은 다시 시작할 아래의 경고가 발생합니다 모든 어쨌든 작동하는 것 같다 동안

[Mon Jan 24 00:12:50 2011] [crit] The unix daemon module not initialized yet. 
Please make sure that your mod_mono module is loaded after the User/Group 
directives have been parsed. Not initializing the dashboard. 

, 이것은 세마포어 누출의 원인이다. User/Group 다음에 Include을 이동하면 경고가 사라지고 mod_mono는 더 이상 세마포어를 유출하지 않습니다.

0

Boehm 대신 새 sgen 가비지 수집기를 사용해보십시오.

새로운 가비지 콜렉터를 사용하려면 단지 --gc = sgen 명령 줄 옵션을 사용하여 모노를 호출하거나 MONO_ENV_OPTIONS 환경에게 "--gc = sgen" 옵션을 포함하는 변수를 설정해야합니다 . 기본적으로 Mono는 계속 Boehm 컬렉터를 사용하여 을 사용합니다.

+0

시도해 보겠다.하지만 세마포어가 XSP와 아파치를 조정하는 IPC 메커니즘이므로 .NET 가비지 수집과 관련이 없다는 인상이다. –

+0

테스트를 마친 후에도 아무런 변화가 없다. 아직도 누설 세마포어 배열 : ( –

1

크로스 프로세스 핸들에서 사용하는 공유 메모리를 보았습니다.

수정 사항은 MONO_DISABLE_SHM = 1이지만, 크로스 프로세스 처리 지원이 2.8부터 비활성화되어 있기 때문에 이것이 문제가되는지는 확실하지 않습니다.

MONO_DISABLE_SHM을 사용해도 차이가 있는지 확인할 수 있습니다.

+0

MonoSetEnv를 통해 설정을 시도했지만 약 20 개의 세마포 배열을 이미 만들었고 아무 것도 제거되지 않았습니다. –

관련 문제