Photon 컨트롤
Photon 컨트롤은 Photon 의 원스탑 컨트롤 UI 입니다. PhotonControl.exe 실행하면 윈도우는 열리지 않으며 서버가 시작되지 않지만 트레이 바에 아이콘이 추가 됩니다.
회색의 아이콘은 Photon이 실행되지 않는 다는 것을 알려줍니다. Photon 서버가 실행되고 있으면 아이콘은 파란색으로 변경됩니다.
개요
아이콘을 클릭하여 메뉴를 엽니다. 사용할 수 있는 기능:
- Photon 의 기동과 종료.
- Photon 서버스의 설치, 기동과 종료.
- "LoadBalancing (MyCloud)"의 게임서버 설정 변경.
- Photon 성능 모니터(PerfMon)카운터 설정 및 오픈.
- 로그 파일 오픈.
- 탐색기에서 작업 경로 오픈.
- Photon 최신 버전을 사용하고 있는지 검증.
Photon 컨트롤을 시작할 때는 어드민 권한이 필요 합니다. 윈도우즈 방화벽 엔트리 작성을 허용하고 가장 중요한 부분은 Photon 의 서비스를 추가하거나 제거 할 수 있다는 점 입니다.
시작하면 Photon 컨트롤은 라이선스를 읽어서 유효기간이 얼마나 남았는지 검증하며 Photon 의 최신 버전을 사용하고 있는지 검토 하여 "Photon 컨트롤"메뉴에 표시해 줍니다.
"Autostart Photon Control" 옵션은 윈도우즈에 로그인 할 때 자동으로 Photon 컨트롤을 시작할 지 여부를 결정 합니다. 이 기능은 원격 머신에 접속할 때 매우 유용하며 Photon의 파일들의 위치를 지정하기 위하여 "Explore Working Path" 를 사용할 수 있습니다.
만약 아이콘이 보이지 않는다면 작은 삼각형을 클릭하여 Photon 컨트롤 아이콘을 드래그앤 드롭하여 트레이에서 다시 팝업 시킵니다.
Photon 실행
기본적으로 두개의 분리된 Photon 환경설정("인스턴스"라고도 부릅니다)을 사용할 수 있습니다.
각 환경설정은 서버 어플리케이션과 사용된 포트의 조합으로 시작 합니다.
"LoadBalancing (MyCloud)" 인스턴스를 시작하면 하나의 마스터 서버와 두개의 게임서버가 실행되는데 이것은 최소한의 Photon 클라우드 호환 설정입니다.
두 번째 인스턴스는 "MMO Demo" 입니다.
퍼블릭 서버에서 Photon 은 서비스로 수행됩니다. 이것은 Photon 컨트롤에서 3단계를 거치게 됩니다:
- Photon 서비스 설치
- 성능 모니터 설치 (매우 유용할 것 입니다)
- 서비스로 Photon 시작
성능 모니터는 실행할 때 꼭 필요한 것은 아니지만 Photon 이 실행될 때 사용할 수 있으니 먼저 성능 모니터를 설정하는 것이 바람직 합니다.
어플리케이션으로 Photon 실행은 로컬 개발에서는 선택사항입니다. 로그 오프 했을 때 Photon 은 셧다운 됩니다.
Photon 이동
하나의 폴더에서 다른 폴더로Photon을 이동하기 전에 모든 서비스가 제거 되었는지와 Photon 컨트롤이 자동시작으로 되어 있는지 확인 해 주세요. 새로운 위치로 다시 설치 합니다.
"LoadBalancing IP Config" 경로 변경
Photon 컨트롤이 광범위 하게 변경 될 수 없다면 몇가지 중요한 설정은 "PhotonControl.exe.config" 에서 찾아 볼 수 있습니다.
"GameServerConfigPaths" 설정은 프로젝트가 로드 밸런싱을 따르지 않고 이름이 변경 될 때 필요 할 수 있습니다.
GameServerConfigPaths는 ';' 로 분리된 경로의 목록으로 PhotonControl.exe 가 있는 폴더의 상대 경로 입니다.
로그
Photon은 기본적인 정보(상태,예외등)를 서버 로그 파일 로그에 기록 합니다. "Open Logs" 를 클릭하여 Photon 이 지난 12시간 동안 기록 했던 모든 로그를 볼 수 있습니다. 물론 필요하다면 더 많은 파일을 오픈 할 수 있습니다.
두 종류의 "log" 폴더가 있습니다:
모든 application logs 들은 deploy/log folder 안에 있습니다..
비즈니스 로직에 의해 로그기록 되었던 모든 것들은 deploy/log 내의 파일로 들어가게 됩니다.server core's log 폴더는 실행 파일 (예, bin_win32/log)이 있는 곳 입니다.
여기에는 모든 인스턴스와 CLR(.NET 런타임)관련된 것을 포함하고 있습니다.They contain anything instance and CLR (.NET runtime) related.
로직 레이어에서는 Log4Net 을 사용 합니다. 전역적으로 설정 될 수 있으며 매우 유용 합니다. 여기에서 Log4Net을 더 자세히 알아 보세요.
카운터
Photon 은 성능과 오류 분석을 위해 몇개의 중요한 값들을 추적 하고 있습니다. 이러한 값들은 두 개로 분리된 카운터로 게재 됩니다 :"성능 모니터" 와 "Dashboard Counters"
성능 모니터
성능 모니터는 Photon 코어의 중요한 값들인 연결된 피어, 패키지 카운트, 신뢰 UDP 사용, 대역폭등의 값들을 추적 합니다.
이러한 카운터들은 개발자에 의해서 변경될 수 없으며 성능 모니터에서 접근할 수 있습니다.
성능 모니터는 GUI 로 이러한 성능 그래프를 생성해주며 이미 윈도우즈에 설치 되어 있습니다.
만약 성능모니터들이 장시간(GUI 수행없이)동안 로그를 기록할 필요가 있다면 성능모니터를 파일에 로깅하도록 설정하고 시작 할 수 있습니다.
"성능 모니터", "데이터 수집기 집합"을 클릭 후 "로깅 시작"을 클릭하세요. 로그들은
C:\PerfLogs\Admin\photon_perf_log_<date>.blg 에 있어야 합니다.
관리화면 카운터
관리화면 카운터는 비지니스 로직내의 값들을 추적하고 필요에 따라서 확장 할 수 있습니다.
관리화면
관리화면은 카운터 값을 통합하고 웹사이트에서 값을 모니터링 하기 위해서 그래프를 생성합니다.
관리화면 자체는 Photon 이 이미 실행되고 있는 동안에도 서비스로 설치할 수 있습니다. 어플리케이션의 어떤 카운터 데이터가 게재되는 지는(모든 경우에) 어플리케이션의 설정을 따라 갑니다. Lite 에는 사용할 수 있는 미리 정의된 몇개의 카운터들이 있습니다.
문제해결
Photon 이 예상하는 대로 동작 하지 않는다면 항상 로그를 살펴 보시기 바랍니다.
또한 항상 체크해 봐야 하는 일반적인 위험 사항이 있습니다.
- .NET 4.0 누락: 이 경우는 Photon 을 시작할 수 없습니다. 이 사항을 CLR 버전과 혼동하지 마시기 바랍니다.
- Application 누락: 만약 Photon 이 설정된 어플리케이션을 찾을 수 없다면 시작 할 수 없습니다. 디플로이 폴더에서 설정을 체크 해 보시기 바랍니다.
- 빌드가 최신버전이 아닙니다: 새로운 서버 SDK 로 전환하여 항상 어플리케이션의 빌드를 다시 하여 libs 폴더의 어셈블리들을 참조 하도록 해야 합니다. 그렇지 않으면 호환되지 않을 수 있습니다.
- 방화벽: Photon 이 실행되고 있으나 다른 기계에 접속할 수 없다면 방화벽을 체크해 보세요. 최신 버전의 Windows에는 역할과 권한이 있으며, 호스팅 사업자가 하드웨어 방화벽을 사용할 확률이 높습니다.
- 지연: 기본적으로 라운드 트립 시간은 약 50ms 입니다. 심지어 로컬에서도 그렇습니다. 이 지연은 설정에 관련되어 있으며 설정 페이지에 설명되어 있습니다. 전송 지연과 Ack 지연을 읽어 보세요.
덤프 파일 설정
만약 서버가 죽어 원인을 로그에서 파악할 수 없는 경우에 Photon 이 덤프 파일을 생성할 수 있도록 설정 할 수 있습니다. 크래시 될때의 상태와 메모리가 반영되는 것으로 이러한 경우에 디버그시 매우 유용한 정보입니다.
이 기능을 사용하기 위해서 PhotonServer.config 파일을 편집해야 합니다. "ProduceDumps" 인스턴스 속성을 true 로 설정 후 서버를 재시작 하십시오. 다음 처럼 보입니다:
XML
<Default
EnablePerformanceCounters = "true"
DataSendingDelayMilliseconds="50"
AckSendingDelayMilliseconds="50"
MinimumTimeout="5000"
MaximumTimeout="30000"
ProduceDumps="true">
10개의 "full" 파일에 쓰게 됩니다. 덤프 파일 쓰기가 완료되면 로그를 압축하여 저희쪽으로 이슈에 대한 설명과 같이 메일을 보내실 수 있습니다. 발생된 대부분의 경우에 해결을 위해 연락을 드려 추가적인 정보를 요청 드릴 것입니다.
Back to top- 개요 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline
- "LoadBalancing IP Config" 경로 변경 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline
- 로그 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline
- 카운터 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline
- 관리화면 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline
- 문제해결 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline
- 덤프 파일 설정 Markdig.Syntax.Inlines.HtmlInlineMarkdig.Syntax.Inlines.HtmlInline