저는 Isucon8에 참가해서 예선을 통과했습니다.

3442 단어 isucon8Goisucon
며칠 전에 나는 ISUCON에 참가했다.그리고 예선을 통과했다.
참가팀은 학생,ultra_fast_gopher.(팀 이름은 slack의 Emoji의 ultra_fast_parrot
나는 MOX라는 이름으로 참가했다.
이번에는 아이수콘이 두 번째로 참가한다.지난번에 작년에 ISUCON7에 참가했어요.
자신을 제외한 두 팀 모두 처음으로 참가했다.작년에는 멤버 관계로 사회인팀으로 참가했다.
참, Qiita 시작했어요.

사전 준비


사전에 Isucon7 예선을 한 번 해결했는데 그때 몸이 아파서 못 나갔어요.
사용한 물건은 사전에 감시 도구로 넷데이터를 결정했다.
4일 전까지는 어디서 참석할지 결정하지 못하고 신주쿠 주변 임대 회의실을 급히 빌렸다.(팀원들이 예약을 해줬어요)

당일


아침에 늦잠을 자다가 9시 30분에 신주쿠의 임대 회의실에서 만났지만 놓쳐 특급 낭만차 요금을 내고 9시 30분쯤 임대 회의실이라는 아파트의 한 방에 무사히 도착했다.팀원들 혼자 9시쯤이 되자 배수구가 막힌 팀원들도 얼마 지나지 않아 도착했다고 한다.
우선 컴퓨터 한 세트를 확장하고 인터넷 환경을 임대 회의실의 주머니 와이파이에 연결할 준비를 한다.하지만 핑은 53ms와 SSH로 작업할 때 엄격한 속도로 자신의 주머니 와이파이를 사용했다.(이것은 Ping20ms 정도의 속도)

초동


우선 규칙을 대충 읽고 팀원들이 SSH 키 등록, Git 키 등록, 호스트 이름 변경 등을 하고 있습니다. 저는 각 기계에 넷데이터를 설치했습니다.
문제를 읽을 때 팀원들은 Nginx가 아니라 h2o라고 하는데 자신이 h2o를 사용한 적이 없기 때문에 주위 사람들이 접촉한 적이 없다.
어쨌든 아무것도 하지 않은 상태에서 벤치를 돌릴 때,fail.먼저 움직일 수 있는 상태, done.이때 점수는 1500 정도입니다.또 지난해와 달리 CPU가 소진된 것으로 확인됐다.

11:00〜


다음은 설치를 읽으면서 병목을 찾는 일이다.요즘 벌써 11:00이에요.
마리adb가 CPU를 다 먹은 것을 확인했기 때문에 두 번째 서버에서는 마리adb만 잘랐습니다.db와 App 서버를 분리해도 초기화 처리에서fail이 진행돼 곤혹스럽다.팀원들이 원인을 확정한다, init.sh를 두 번째 데스크톱으로 처리하기 위해 수정되었습니다.
팀원들이alp를 통해 h2o를 읽을 수 있도록 로그 형식을 편집합니다.
점심이 되자 배도 고프고 머리도 좀 피곤하니 먼저 점심을 먹자.근처 가정집에 가서 각자 점심을 마음대로 사서 돌아오는 대회에 참가하면서 먹는다.

13:00〜


점심을 먹으면서 보니 gete events에서 get Event가 순환하지 않고 불리는 것을 발견하고 그곳을 수정하기 시작했다.또한 존재의 의미를 알 수 없는sheet표를 없애기 위해 수정을 시작한다.
이에 따라 팀원들은 reservation표에 대한 요구를 1회로 하고 거기서 기준을 바꾸어 13000점을 넘었고 순위도 7위에 올랐다.
get Event를 수정하면 점수가 이렇게 달라질까요?
그리고 벤치를 몇 번 돌자 마리아db는 갑자기 "too many connection"이라고 말했다.따라서 Go 측에서 maxConnection 등의 설정을 변경하면mariadb도 이에 상응하여 연결수를 변경한다.
그리고 벤치를 몇 번 돌다가 무작위fail을 만났다.고속화 때문에 통합성이 없으면 죽는 것 같다

15:00〜


최근에 나는 수정된 좌석의 무작위 예약을 오름차순으로 하고 Go측에서channel을 사용하는 설치를 마쳤다.하지만 몇 가지 오류가 있어 팀원들이 수정했다.이것은 일종의 미안한 심정이다.
또 벤치를 돌릴 때 벤치 표시가 좌석 예약이 무작위로 되지 않으면 오류가 발생한다
좌석 예약이 랜덤이 아니면 안 되는데... 생각하면서 벤치 마크로 판단하는 게 힘들겠죠.

17:00〜


내가 일하는 것과 동료들이 일하는 것을 합치다.이때,git는confrict를 일으켜 서둘러 합병시켰다.합병이 완료되고 중요한 고비에 벤치를 몇 번 돌리며 끝난다.
마지막 스코어는 13628입니다.
제일 좋은 24680은 어디 있어요?

감상


이번에 학생팀으로 ISUCON에 참가하게 된 것은 지난해와 다른 재미가 있다.
작년에는 인터넷 주변이 주로 병목이었으나 올해는 처리 주변이 병목이었다.
올해 Isucon의 재부팅 테스트 등은 잘 진행되지 않았으며, 본전과 내년 이후에는 재부팅 테스트를 잘 진행하고 싶습니다.한편, 이번 운좋게 예선을 통과했지만 실제로 Go의 응용 프로그램에는 랜덤fail의 오류가 남아 있다. 이 오류를 완전히 파괴하지 않으면 자격을 잃는다?이런 느낌은 매우 무섭다.
어쨌든 예선을 무사히 통과해서 기쁩니다.나는 이번 예선을 통해 주로 좋은 팀원들로 구성되었다고 생각한다.

훗날


올해 ISUCON은 대회가 끝난 후 서버에 접근할 수 있을 뿐만 아니라 벤치마크도 사용할 수 있다.
감사합니다.코노하 신!!!
벤치 마크도 돌기 때문에 어플리케이션과 DB를 해봤어요.
- 색인을 reservations 에 추가user_id- innoDB 버퍼 크기 조정
조정-query cache
경기에서 47981의 점수를 냈기 때문에 대회에서 더 많은 점수를 얻었다.

제 Isucon 이력서.

  • ISUCON7: 아무것도 모르고 끝난다
  • ISUCON8: 학생팀으로 참가하여 예선통과<-NEW!!!
  • 좋은 웹페이지 즐겨찾기