TIL - 항해 99 67일차

스브코·2022년 1월 6일
0

회고💦


AWS troubleshooting

nginx 무중단 배포를 하면

8081, 8082 두 포트에서 jar 파일이 실행되고 nginx가 둘중 하나의 service port를 바라본다. 아래의 블로그를 참조하면 우리가 구성한 배포자동화가 어떤식으로 실행되는지 알수 있다.

https://yeonyeon.tistory.com/76

뭔가 두개가 실행되고 있어서 충돌이 나는지 nginx가 바라보지 않는 port에서 실행되는 프로세스를 강제로 종료시키도록 switch.sh를 아래와 같이 수정하였다

#!/usr/bin/env bash

ABSPATH=$(readlink -f $0)
ABSDIR=$(dirname $ABSPATH)
source ${ABSDIR}/profile.sh

function switch_proxy() {
    IDLE_PORT=$(find_idle_port)

    echo "> 전환할 Port: $IDLE_PORT"
    echo "> Port 전환"
    echo "set \$service_url http://127.0.0.1:${IDLE_PORT};" | sudo tee /etc/nginx/conf.d/service-url.inc

    # 포트 전환하면서, 바꾼거말고 다른거 kill
    if [ ${IDLE_PORT} == 8081 ]
    then
      KILL_PORT=8082
      IDLE_PID=$(lsof -ti tcp:${KILL_PORT})
      echo "> ${KILL_PORT} 포트를 종료합니다."
      kill -15 ${IDLE_PID}
    else
      KILL_PORT=8081
      IDLE_PID=$(lsof -ti tcp:${KILL_PORT})
      echo "> ${KILL_PORT} 포트를 종료합니다."
      kill -15 ${IDLE_PID}
    fi

    echo "> 엔진엑스 Reload"
    sudo service nginx reload
}

수정 후 하나의 jar파일만 실행되는것을 확인하였고, 현재까지는 서버의 CPU가 올라가는 이상현상이 더 이상 발생하지 않고있다.


JPA 연관관계 "mappedBy" [출처1] [출처2]

oneToMany, ManyToOne 양방향 관계에서 ManyToOne에 있는 entity를 삭제시 외래키 참조 무결성 위반 에러가 떴다. 출처의 내용처럼 외래키 설정 시 owner 설정을 oneToMany쪽에 해주지 않아서 양방향 관계에서 ManyToOne 이 기본값으로 owner로 설정되는 바람에 oneToMany쪽에서는 함께 삭제 되지않았다.


    @OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
    private List<Comment> commentList;

주인관계를 위와 같이 설정하여 해결하였다.


Ubuntu CPU/memory 사용량 log 남기기[출처]

우분투의 CPU 부하 원인을 찾기위해 아래와 같이 명령어를 백그라운드에서 실행시켜두었다.

while true; do (echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail) >> ps.log; sleep 5; done &

%CPU %MEM ARGS Mo 17. Jan 23:09:47 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.1  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
%CPU %MEM ARGS Mo 17. Jan 23:09:48 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.0  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
 ...

이런식으로 로그가 떨어진다.

profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...

0개의 댓글