서비스 응답속도 저하시 php-fpm 로그로 원인분석하기

php-fpm 기반의 웹 서비스에서 알 수 없는 문제로 응답속도가 저하되는 현상이 발생 할 경우가 있다.

원인은 여러가지일 수 있다. 몇 가지를 꼽자면,

  1. DBMS의 SQL 응답속도 저하 (Slow Query)
  2. 네트워크 지연
  3. 서버 리소스 점유율 (CPU, RAM 등)
  4. Disk 입출력 문제

등이 있다.

하지만, 서버 리소스나 네트워크에 별 다른 문제가 없고, Slow Query 로그에도 별다른 이상징후가 없다면,
원인분석을 해야 하는데, 이 경우 Web Application에서 어느 로직에서 문제가 발생하는지 원인을 찾아야 한다.

개발환경이라면 Xdebug를 활용 수 있겠지만, 실 서비스 중인 서버에는 적용할 수 없는 방법이다.

이 때는 php-fpm의 slowlog를 찍어서 확인하는 방법이 있다.

php-fpm.conf 파일을 열어보면 아래와 같은 설정을 확인할 수 있다.

......
request_slowlog_timeout = 30s
slowlog = /var/log/php-fpm/slow.log
......

여기서 request_slowlog_timeout을 3~5s 정도로 낮추고, php-fpm 서비스를 재시작한다.

그 후 tail 명령으로 /var/log/php-fpm/slow.log 를 확인 후 응답속도가 느린 페이지에 접속을 계속 시도해보면 다음과 같은 로그가 찍힌다.

[10-Nov-2018 11:30:22]  [pool www] pid 8260
script_filename = ******************
[0x00007f1a47de79a8] fopen() ****.php:422
[0x00007f1a47de6500] +++ dump failed

이 로그에는 응답속도 저하의 원인이 되는 파일과 해당 function까지 추적해주기 때문에 원인을 금방 파악할 수 있다.

DevOps 장애조치 PHP php-fpm

임금체불 사건에 관하여 2

이전 글 : 임금체불 사건에 관하여 1

 

조직개편, 그리고 기술 시연회

워크숍을 다녀온 후, 전사적으로 조직개편이 있었다.
그리고 얼마 지나지 않아 직원들이 각 부서로 배치되기 시작했다.

나는 나를 추천해준 동아리 형님이 팀장을 맡고 있는 팀으로 배정되었다.

그리고 연구소에서 뭔가를 열심히 만들며 즐겁게 웃던 직원분은 따로 칸막이가 되어 있는 방으로 자리가 배정되었으며, 그 분도 팀장을 맡았다.

그 해 봄, 서울의 한 행사장을 빌려 회사의 기술 시연회를 열였다.

발표회장은 각계의 보안 관련 인사들로 발 디딜틈이 없었다.
언론에도 놀라온 보안기술이 국내에서 개발되었다는 기사가 연일 올라오기 시작했다.

 

제품개발

기술 시연회는 말 그대로 기술 시연회였다.
"기술이 구현 가능하다" 정도만 보여준 행사였을 뿐, 제품화 시키기에는 아직 갈길이 멀었다.

그래서 각 부서별로 기술의 제품화를 위한 개발작업에 착수하였다.

나에게는 제품 UI 개발 업무가 주어졌다.

정말 열심히 만들었다. 거의 매일 야근을 하고, 주말에도 사무실에 나와 제품 개발에 매진했다.
야근하면서 편의점에서 삼각김밥이나 컵라면 등 간식을 먹긴 했지만 회사에 따로 비용은 청구하지 않았다.
왜냐면 회사가 정말 잘 될거라는 확신이 있었고 투자받은 금액이 그리 크지도 않은데 그런 비용을 청구하고 싶지는 않았다.

그리고 연구소에 계신 다른 팀 팀장님과도 의견을 계속 교환하였다.

여러 차례의 시행착오도 겪고 몇 차례 일정을 준수하지 못해서 팀장님(동아리 선배)에게 한소리 듣긴 했지만, 결국 제품 화면을 완성해내는데 성공했다.

지금 생각해보면 제품 화면을 그리 썩 잘 만들었다고 할 수는 없을 것 같다.
꽤 오래된 기술로 만들었고, 코드 재사용성이나 확장성 등 소프트웨어 공학적인 측면에는 많이 부족한 제품이었다.

메뉴를 이동할 때마다 화면이 깜빡이는 문제가 있는데 결국 해결방법을 찾지 못하고 그 상태 그대로 제품 출시가 되었다.

그럼에도 불구하고 많은 분들이 칭찬을 해 주셨다.
대표님도 좋아하시고 팀장님도 술을 사주시며 정말 고생많았고 수고했다는 이야기도 들었다.

언론에도 제품 출시가 되었다는 기사가 나갔으며, 제품의 화면도 함께 첨부되어 있는 모습을 보고 정말 보람을 느꼈다.

 

아버지의 알콜중독 문제

나에게는 아버지가 한 분 계신다.

아버지는 15년전 가정불화와 이혼을 겪고 나서 거의 매일 술에 쩔어 지내셨다.
이혼한 어머니는 아버지의 피가 섞인 자식이라며 나를 미워했고, 이혼 후 연락을 끊어버렸다.
게다가 하나 뿐은 자식은 돈벌러 서울을 가버렸으니 남아있는 아버지가 얼마나 외로웠을까.

직장을 다니는 동안 아버지의 알콜중독 문제가 불거지기 시작했다.
퇴근하자마자 KTX 기차표를 끊어서 부산에 내려갔다. 고항집에 들어가자 악취가 진동했다.
곳곳에는 구토한 흔적과 술병이 어지럽게 널려져 있고 구더기마저 득실거렸다.
그리고 아버지는 방 구석에 누워서 신음하고 있었다.

일단 집을 청소했다.
쓰레기를 모두 한군데 모아서 쓰레기봉투에 담아서 묶고, 오염된 이불과 옷가지를 세탁했다.

그리고 냉장고에는 술병을 채워 두었다.
혹시라도 아버지가 술을 사러 밖에 나가다가 계단에서 굴러떨어져 다칠까 걱정이 되었기 때문이다.

이런 생활을 거의 2년 정도 했던 것 같다.

퇴근 후 KTX에 몸을 싣고 부산에 내려가고 KTX 첫차를 타고 서울에 도착해 회사에 출근하는 일이 잦아졌다.
아버지의 알콜중독 증세가 심했던 시기에는 회사에 출근을 제대로 못했던 적도 있었다.

기차에서 나쁜 자세로 잠을 청하다보니 허리디스크까지 발병해서 의자에 오래 앉지를 못하는 등 여러가지로 힘든 시기였다.

이런 사정을 알고 있던 팀장님(동아리 형님)은 회사 업무시간을 조정해주는 등 여러 방면으로 배려를 해주셨다.
대표님께도 해당 사실이 보고되었고, 회사는 걱정 말고 집안 문제를 해결하는데 힘쓰라는 격려도 해 주셨다.

 

뇌종양 발병

예비군 훈련이 있던 날이였다.

사격훈련을 위해 한쪽 눈을 감은 채로 총기의 조정간에 눈을 갖다 댔는데 잘 보이지 않았다.
야근을 많이 해서, 컴퓨터 모니터 화면을 오래 보고 있어서 그렇겠거니 라고 생각하고 별 대수롭지 않게 생각했다.

하지만 눈 한 쪽이 흐려 보이는 증상은 계속되었고, 회사 근처에 있는 안과를 방문해서 검사를 받았다.
검진 결과 안과에서는 눈에는 아무 이상이 없다고 한다.
뇌신경 쪽 문제가 의심되고 소견서를 써줄 테니 종합병원으로 가서 정밀검사를 받아보라고 했다.

소견서를 들고 종합병원에서 CT와 MRI를 찍어 보았다.
결과는 충격적이었다.

뇌하수체에 종양이 자라고 있고, 종양이 커져서 시신경을 누르고 있는 바람에 시야에 문제가 생긴 것이였다.
종양 제거 수술을 받아야 한다는 진단이 내려졌다.

일단 보호자인 아버지께 말씀드리고, 팀장님께도 말씀드렸다.
근처 대학병원에 수술 예약을 잡긴 했지만, 수술비가 문제였다.

아버지의 부양 문제와 차비 때문에 버는 돈보다 쓰는 금액이 훨씬 많았고,
마이너스 통장까지 발급받아 빚을 내서 생활하고 있었기 때문에 수술비와 입원비를 마련할 길이 막막했다.

팀장님께 그 사실을 말씀드리자, 팀장님은 내가 해결해볼테니 회사 일은 걱정말고 치료를 잘 받는데 집중하라고 해 주셨다.

 

다음 글 : (작성중)

임금체불

임금체불 사건에 관하여 1

약 2년 전에 그만둔 회사에서 약 3,100만원 가량의 임금과 퇴직금을 받지 못하고 있다.
그리고 지금, 회사와 대표이사를 상대로 한 노동부 형사고소와 민사소송 2건이 진행중이다.

나는 회사 투자자가 모여 있는 채팅방에 회사를 비방하는 글과 임금체불의 억울함을 호소하는 글을 게시하였고,
해당 사건에 대한 책임을 져야 할 상황에 놓여 있다.

그동안 있었던 일들에 대해 내가 느꼈던 점, 소회를 간단히 정리를 하고자 한다.
본인의 입장에서 쓴 글이지만, 가급적 사실에 입각해서 작성하려고 노력하였다.

 

대표님을 처음 만나다

내가 처음 대표님을 뵌 시기는 무더위가 한창이던 2012년 7월, 구로디지털단지에 위치한 사무실이였다.

이전에 다니던 회사에서도 임금체불이 발생해서 재취업을 알아보던 중,
대학교 동아리 형님의 소개로 대표님과 면접을 보게 되었고, 이력서 제출 후 간단한 면접을 통해 대표님께서 채용의사를 밝히셔서 입사하게 되었다.

당시 기억하는 대표님의 모습은 뭔가 많이 지쳐보였고, 피곤한 모습이었다.

사무실에는 약 10여명 정도의 인원이 있었으며, 다들 모두 나를 반갑게 맞이해주었다.

예전에 내가 컴퓨터 해킹/보안동아리 활동을 하면서 작성했던 기술문서를 보며 공부를 했다는 직원분들도 만나게 되어 많이 쑥스러웠다.

회사의 분위기는 마치 대학교 동아리 같았다.
다들 모여서 자유롭게 기술에 대해서 토론하고, 가끔 회의실에 모여 다양한 기술을 주제로 발표도 했다.
점심식사 후 회사 직원들끼리 스타크래프트 게임도 하면서 친목을 다지기도 했다.

사람들이 정말 좋아 보였고 "이런 회사라면 오래 다닐 수 있겠구나" 라는 인상을 받았다.

 

또 다시 임금체불

그런데 이직한 회사에서조차 급여가 나오지 않았다.

주변 직원들 얘기를 들어보니 이미 이전부터 급여가 안나오고 있었다고 한다.

가뭄에 가랑비가 내리듯이 100여만원 정도의 급여가 잠깐씩 입금되긴 했지만, 그 금액가지고는 생활비를 감당할 수가 없어서 나는 가지고 있던 컴퓨터를 팔거나 신용카드 리볼빙 서비스를 이용해서 버텼다.

몇몇 직원들은 집세를 내지 못해 보증금을 다 까먹기도 하고, 공과금을 내지 못해 전기와 가스가 끊겨서 추위에 떨면서 지낸다는 말도 들었다.

그럼에도 직원들은 뭔가 희망을 갖고 대표님을 믿고 기다리는 것처럼 보였다.
그리고 기술연구소에 있던 직원 한 명은 뭔가 즐거웠던지 큰 소리로 웃으며 뭔가를 열심히 만들고 있었다.
월급도 안나오는 회사에서 무슨 희망을 가지고 저렇게 버티고 있을까? 나는 궁금하였다.

 

희망을 보다

그러던 와중, 어느 날 대표님께서 나를 대표이사실로 호출하셨다.

대표님은 아이패드로 동영상 하나를 보여주셨다.
동영상의 내용은 매우 충격적이었다.

자세한 사항은 기밀사항이고, 나도 회사에 보안서약을 한 부분이 있어서 말할 수는 없지만,
나름 컴퓨터공학을 전공했었던 본인의 눈으로 보기에도 믿기 힘든 광경이 눈앞에서 펼쳐지고 있었다.

그리고 대표님께서는 해당 사실을 발설하지 말라고 하는 당부와 말씀과 함께,
회사가 잘 되기 위해 여러가지 일들을 추진중이니 힘들더라도 조금만 참고 기다려 달라고 하셨다.

 

투자가 이루어지다

급여는 계속 나오지 않았다.
결국 나도 자금이 바닥나 입사 추천을 해준 동아리 형님께 말씀드렸다.

"지금 살고 있는 고시원 방을 빼고 짐을 모두 회사 사무실로 옮겨 놓고 회사에서 숙식을 하면 안될까요?"

그 형님은 그래도 좋다고 했다. 그래서 그날로 고시원에 있던 짐들을 모두 챙겨 회사 건물 엘리베이터에 탔다.

고시원에 있던 옷가지, 침구류, 가재도구 등을 가지고 엘리베이터를 다고 회사 사무실이 있던 6층에 올라갔다.
마침 엘리베이터 문이 열리자마자 그 형님이 서 계셨다.
그 형님이 내 모습을 보고는, "정홍아, 우리 투자받았다." 라고 말했다.
나는 "그럼 저 짐 가지고 다시 고시원 돌아가도 되죠?" 라고 물었고, 형님은 그렇게 해도 좋다고 했다.

그리고 다음날, 회사의 전략기획 담당 부장님이 나에게 투자받은 사실을 말씀해 주셨다.
또 사무실도 판교로 이사할 거라고 말씀해주셨다. 

곧 대표님께서 전직원을 회의실로 소집하여 투자 사실을 직원들에게 설명하였다.
다만 투자받은 금액이 크지 않아 지금까지 밀린 급여 전부 지급은 어렵다고 하니 이해를 해달라는 말씀도 덧붙였다.
그리고 급여 200만원이 전직원에게 입금되었다.

 

새로운 보금자리에서

회사는 판교의 한 건물에 새 보금자리를 틀게 되었다.
이야기 듣기로는 회사에 투자를 한 투자사가 입주해 있는 건물이라고 한다.

다만 임대료가 비싸다보니 사무실 크기는 많이 줄었다.

사무실 인터리어 공사를 마치고 직원들과 함께 사무실 짐을 하나씩 옮겼다.
사무실에는 번창을 기원한다는 화환, 화분들이 속속 도착하기 시작했고, 언론사에서 기자분들이 찾아와 대표님과 인터뷰를 하는 광경도 볼 수 있었다.

사무실이 어느 정도 정리된 후, 다같이 강원도에 위치한 스키장으로 전사 워크숍을 갔다.

나는 스키장은 처음 가봤다. 집안 형편이 좋지 못했기 때문에 제대로 된 여행이라고는 단 한번도 가지 못했지만,
서툴러서 많이 넘어지긴 했어도 스키장에서 스키를 타본 경험은 잊지 못할 경험이었다.

 

다음 글 : 임금체불 사건에 관하여 2

임금체불