Linux 게임 서버 성능 평가 (eBPF + BCC)

어제 발표에 썼던 슬라이드.
어제 발표에 와주신 분들 감사합니다.

Linux 커널의 내장 트레이싱 기능인 eBPF 와 이를 위한 BCC 툴킷을 써서 동작 중인 프로세스를 분석해서 성능 문제를 찾는 방법을 설명했다.
머지 않은 미래에 안드로이드 성능 측정도 이걸로 할 수 있을 듯하니, 서버 뿐만 아니라 안드로이드 기기에서 개발하는 분들도 한 번 보시라.

eBFP +BCC 는 간단히 요약하면, python (혹은 go, lua) 으로 통계 처리 및 초기화, 몇줄 안되는 C코드로 커널 내부에서 후킹/통계 수집을 하고, 수집할 수 있는 범위가 넓어서 (커널 함수부터 유저 함수까지) 성능 분석 / 디버깅 쪽에 유용한 툴이다.
최신 커널이 필요하긴 하지만 재시작/빌드없이 측정할 수 있다는 점에서 매우 매력적인 툴이다.

그리고 예제로는 C++ HTTP API 서버를 만들었다. 하재승 군이 만든 Crow 와 이것의 사촌쯤될 데이터베이스 래퍼 CrowDB 를 썼다. 내가 쓴건 아직 비공개 버전.
덕분에 C++ 1y 로 매우 편안하게 짰다.

iPhone 배터리 교체

지난 설에 양가 방문하고 나니 도저히 이대로는 못 버티겠다 싶어서, 3월 초에 배터리 교체를 받았다. 사용 중인 아이폰 6S는 특정 시기 생산품에 대해서 무상 교체를 하는데, 그 대상이라 공짜로 교체 받긴 했다.

가장 가까운 서비스 센터가 판교 일렉트로 마트 안에 있어서 휴일에 판교역에 갔다와야 했다. Orz.

배터리 교체는 생각보다 얼마 안걸렸고 — 대략 20분 내외? — 잠시 대기 줄에서 기다린 시간이 한 15분 정도였던듯. 근데 이건 문열자 마자 뛰어가서 그렇고, 실제로는 이보다야 더 걸리겠지.

교체하고나니 배터리가 좀 더 오래 가기는 하는데, 체감 상으로 더 컸던 부분은 트위터 실행 속도가 빨라졌다 정도? 배터리 충전량 줄면 성능 줄이는게 생각보다 더 컸던 듯 싶다.

코코넛 배터리에도 이제 충전 잔량이 크게 나온다 신난다(?).