brunch

You can make anything
by writing

C.S.Lewis

by lucent Nov 05. 2019

무시할 수 없는 비용

컨텍스트 스위치

이번 주는 컨텍스트 스위치가 많이 일어난 한 주였던 것 같다. 앞으로는 내부적인 요인과 외부적인 요인을 나누어 생각해보든 기록을 해 보든 하면 좋겠는데, 성격 상 이게 가능할지 모르겠다.


무얼 했을까

Bad Gateway, Load Balancer, Keep-alive

요새 ECS에 파이썬 웹앱을 올린 다음 이를 다시 AWS Load Balance로 묶어서 사용하는데, 앱이 HTTP/1.0으로 작동할 때엔 문제가 없다가 HTTP/1.1로 작동하니까 자꾸 502 에러가 나더라.

원인을 찾아보니 LB의 keep-alive 타임아웃보다 앱의 타임아웃 시간이 짧아서 발생한다고. LB와 앱 사이의 커넥션은 클라이언트와의 커넥션과는 달리 안정적이니 오래 써서 커넥션 생성 비용을 줄여야 하는 게 당연한데, 평소에 별생각 없이 늘 'nginx가 알아서 해 주겠지~' 하고 둔 것 때문에 삽질을 했다.

어쨌든 해결! 이면 좋았을 텐데.. 빈도만 줄고 여전히 발생하는 문제 때문에 결국 컨테이너 안에 nginx까지 집어넣어 해결했다. 과연 이게 최선일까?


Knowledge Distillation

실제로 이용하기엔 계산량이 너무 많은 모델을 작게 만드는 방법의 일환으로 이제야 한번 살펴보았다. 조금 과하게 단순화하면 큰 모델의 Softmax 출력 값(클래스 별 확률 / Soft target)에 담겨있는 미묘한 정보를 통해 작은 모델이 클래스 레이블(Hard target)에서 직접 학습하기 어려운 지식을 쉽게 학습할 수 있다는 아이디어이다.

fastai로 대충 작성해 보았는데 gpu 성능이 모자라서 실험이 쉽지 않아 원하는 결과를 확인하진 못했다(삽질의 흔적)


AWS ECS

처음 보고 든 생각은 Kubernetes였다. 앗 이거 K8s랑 너무 비슷하다! 하고, 뭐가 먼저 나온 건진 모르겠지만. 다만 아직까지의 인상은 기능이 너무 복잡해서 헤매기 쉬운 것 같다. 예를 들어 새 EC2 인스턴스를 기존의 클러스터에 붙이는 작업이라든지.


내가 진짜 꼭 하려고 했는데

늘 그렇듯이 해야지 해야지 하면서 못한 것이 또 태산처럼 쌓였다.

블로깅

Terraform

OSS 기여

딥러닝 공부

프론트엔드 공부

코드포스 재활...


우선순위가 필요해

컨텍스트 스위치의 이유를 생각해보고, 한 주 동안 과연 무얼 했는지 돌아보니 아무래도 잦은 스위치의 원인은 '우선순위를 잘 관리하지 못했기 때문이 아닐까!'라는 생각이 들었다.

사실 예전에도 뭘 할지 고민만 하느라 주말에도 시간을 무의미하게 흘려보내는 문제의 해결책을 주변에 물어본 적이 있고, 그때에도 할 일을 적고 우선순위를 매겨보라는 팁을 들었다. 그런데 지금도 비슷한 고민이라니. 이대로는 안 된다!


메타

일주일에 한 번 쓰니까 뭐라도 한 것 같은 기분으로 회고를 쓸 수 있어서 조금 덜 찔린다 ;)

다만 하루에 몰아 쓰기엔 놓치는 것이 너무 많으니 오늘부턴 매일 초고를 다듬어야겠다. 이렇게 하면 커밋도 할 수 있겠지?

매거진의 이전글 다음 주, 결혼을 합니다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari