Extra Form
PHP PHP 7.3
CMS Rhymix

집 밖에서 우연히 제 사이트에 접속해보았는데, 사이트가 먹통상태인것을 발견하고 급히 재부팅을 해서 해결하였습니다.

 

먹통된것은 밤 9시 전후였고, 트래픽 그래프에서도 이를 확인가능하네요

 

이제 가상서버를 탈출할 때가 된것 같습니다...

 

피크시간은 한정되어있긴 하지만 그 피크시간에 트래픽이 아마어마하니.....

 

download.png

  • profile

    동접이 얼마나 되나요? 피크시간 지금 사양으로도 못버틸 정도면 최소 300명은 넘어야 할 것 같은데요...

  • profile ?
    저 때의 동접은 확인해보디 못했습니다.
    지금은 30명 정도네요...
  • ? profile
    그럼 서버이전할 일이 아닌듯 합니다. 리부팅로 해결된 것도 그렇구요. 뭔가 꼬인듯 합니다.
  • profile ?
    네 php7.3 fpm을 restart 해주었습니다. php문제인 것 같기도 하네요
  • ? profile

    크론탭으로 리스타트 걸어놓으세요. @기진곰님 저희서버 얼마에 한번씩 리스타트였죠?

  • profile profile
    하루에 한 번인가 일 주일에 한 번인가 그럴 텐데,
    그건 opcache에 wasted가 쌓이면 코드가 꼬이는 버그 때문이라
    PHP 7.3이 수시로 뻗어버리는 문제는 해결 못 해요.
  • profile profile

    아.. 미리 리스타트 해줘도 소용 없군요... 

    저희는 7.2라 다행...

  • profile ?
    다시 php7.2로 돌아가야겠습니다.
    최신 버전을 너무 좋아하지만...이러면 곤란해요 PHP!!!
  • profile

    PHP 7.3 문제일 수도 있습니다. 얘가 아직 좀 불안정해서 종종 뻗어버리거든요. PHP-FPM이 뻗으면 502 에러를 맛보게 됩니다 ㅠㅠ

  • profile ?

    네 서버 ssh접속은 쾌적하게 이용할 수 있었습니다.
    단순히 php fpm 서비스를 restart 해주니까 바로 해결되더라구요

    최근에 서버 설정을 변경한 것은 gzip compress level을 9에서 6으로 낮춘거밖에 없는데 이건 CPU부하를 오히려 더 낮춰주도록 한거라 이게 원인일겋 같지는 않네요

  • ? profile
    PHP 7.3에서 몇몇 내장함수를 호출하면 PHP-FPM이 통째로 뻗어버리곤 합니다. XE보다 라이믹스가 PHP 최신 버전의 다양한 기능을 더 많이 활용하기 때문에, XE는 괜찮은데 라이믹스를 쓰면 이 버그에 걸릴 때가 있어요.
  • profile ?
    그런데 평소에는 안그러다가 저겋게 접속자가 몰릴경우에 뻗어버리는 경우에도 PHP7.3 FPM 자체 버그때문일수도 있을까요??
  • ? profile
    접속자가 그다지 많이 몰린 것도 아니고 30명이라면서요? ㅎㅎ
  • profile ?
    아 지금(오전 1시경)은 30명 정도로 확인된다는 말이였습니다.
    저 그래프에서 갑자기 치솟은 시점(어제 오후 9시경(이 1000k -> 4000k까지 올랐으니까 단순하게 계산해보면 30×4 = 120명 정도로 예측 가능한 것 같네요. 그것도 절대~ 많은 수치가 아닌데, 뻗은 것을 보면 php문제인것 같습니다.
    PHP7.2도 주기적으로 restart 해줘야 하나요??
  • ? profile
    PHP 7.x 계열의 모든 버전은 opcache wasted 문제 때문에 종종 restart해주는 것이 좋습니다. 얼마나 자주 해주어야 하는지는 opcache 설정과 사이트 특성에 따라 다릅니다.
  • profile ?
    네 답변감사합니다. 어느정도 감을 심어주셨으니, 나머지는 검색하고 공부해서 해결해봐야겠네요!
  • profile
    응용프로그램(xe같은)에서 메모리 릭이 생길 수 있읍니다.
    오래전 xe 공홈에서 관련 컴프레인을 본 적 있습니다.
    꼭 그렇지 않더라도 php에서 메모리 누수는 여러 이유로 있을 수 있으므로 php에서는 관련 설정이 있습니다.
    php-fpm설정 파일에서
    pm.max_requests를 사이트 특성에 맞게 상수로 설정하세요(기본값이 무제한 0입니다.)
    너무 작게 하면 cpu사용이 많아지므로 적당히 (적당히라는 말이 좀 어려운 것이지만요)
    크론으로 일정기간마다 재시작해도 운이 없으면 그 사이에 다운될 수 있습니다.