Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jakduk-api 배포 하고 나면 jakduk-web 접속시 warm-up이 유독 느린 이유가? #151

Open
Pyohwan opened this issue Oct 22, 2019 · 13 comments
Assignees

Comments

@Pyohwan
Copy link
Member

Pyohwan commented Oct 22, 2019

왜 그럴까요?
개발 기준으로 보면, dev-api.jakduk.com 은 배포 직후 요청하면 응답이 바로 오는데요.
dev-web.jakduk.com 은 요청하면 한참 걸립니다.

AL01302757-2:naver_ssh user$ wget "https://dev-web.jakduk.com/home"
--2019-10-22 13:14:18--  https://dev-web.jakduk.com/home
Resolving dev-web.jakduk.com (dev-web.jakduk.com)... 175.116.139.194
Connecting to dev-web.jakduk.com (dev-web.jakduk.com)|175.116.139.194|:443... connected.
HTTP request sent, awaiting response... 


200 OK
Length: 2526 (2.5K) [text/html]
Saving to: ‘home’

home                                                     100%[==================================================================================================================================>]   2.47K  --.-KB/s    in 0s      

2019-10-22 13:15:53 (66.9 MB/s) - ‘home’ saved [2526/2526]

위 명령어 보면 알겠지만, 1분 넘게 걸렸어요. node.js 에서 캐시를 하고 있거나 한가요? 아니면 jakduk-api 서버와 주기적으로 health-check 를 하나요?

@silverprize
Copy link
Member

silverprize commented Oct 22, 2019

@Pyohwan 배포 직후 프록시 서버 거치지 않고 api서버로 요청하면 지연 없나요?

@silverprize
Copy link
Member

silverprize commented Oct 22, 2019

해봤는데 안느린데요.

@Pyohwan
Copy link
Member Author

Pyohwan commented Oct 22, 2019

어떻게 테스트 했나요

@silverprize
Copy link
Member

왜 그럴까요?
개발 기준으로 보면, dev-api.jakduk.com 은 배포 직후 요청하면 응답이 바로 오는데요.
dev-web.jakduk.com 은 요청하면 한참 걸립니다.

AL01302757-2:naver_ssh user$ wget "https://dev-web.jakduk.com/home"
--2019-10-22 13:14:18--  https://dev-web.jakduk.com/home
Resolving dev-web.jakduk.com (dev-web.jakduk.com)... 175.116.139.194
Connecting to dev-web.jakduk.com (dev-web.jakduk.com)|175.116.139.194|:443... connected.
HTTP request sent, awaiting response... 


200 OK
Length: 2526 (2.5K) [text/html]
Saving to: ‘home’

home                                                     100%[==================================================================================================================================>]   2.47K  --.-KB/s    in 0s      

2019-10-22 13:15:53 (66.9 MB/s) - ‘home’ saved [2526/2526]

위 명령어 보면 알겠지만, 1분 넘게 걸렸어요. node.js 에서 캐시를 하고 있거나 한가요? 아니면 jakduk-api 서버와 주기적으로 health-check 를 하나요?

배포 끝나고 똑같이 했습니다.

@Pyohwan
Copy link
Member Author

Pyohwan commented Oct 22, 2019

현재 jenkins에서 jakduk-api 배포하면 jar 파일은 교체되나 java 프로세스가 restart 안되는 버그가 있어요. 서버 접속해서 systemctl restart jakduk-api 하고 해보셈

@silverprize
Copy link
Member

192.168.55.143 장비에서 https://dev-api.jakduk.com/api/home/latest 호출

[root@localhost ~]# wget https://dev-api.jakduk.com/api/home/latest
--2019-10-22 22:10:29--  https://dev-api.jakduk.com/api/home/latest
Resolving dev-api.jakduk.com... 175.116.139.194
Connecting to dev-api.jakduk.com|175.116.139.194|:443... failed: 연결이 거부됨.

@silverprize
Copy link
Member

192.168.55.143 장비에서 192.168.55.59:8080/api/home/latest 호출

[root@localhost ~]# wget 192.168.55.59:8080/api/home/latest
--2019-10-22 22:15:46--  http://192.168.55.59:8080/api/home/latest
Connecting to 192.168.55.59:8080... connected.
HTTP request sent, awaiting response... 200
Length: unspecified [application/json]
Saving to: `latest'

    [ <=>                                  ] 12,720      --.-K/s   in 0s

2019-10-22 22:15:46 (470 MB/s) - `latest' saved [12720]

@Pyohwan
Copy link
Member Author

Pyohwan commented Oct 22, 2019

네 api는 응답 빨리 오는군요. 그리고 내부망에서 도메인으로 접근 안되요. skb 공유기 루프백이 안되서요. 집에서 도메인으로 wget 해보세요. 잘 된다면 api는 문제 없고 web에서 응답이 느린거겠죠

@silverprize
Copy link
Member

192.168.55.143 장비에서 localhost:3000/api/home/latest 호출 바로 응답 옵니다.
외부에서 https://dev-api.jakduk.com/api/home/latest 호출할때만 이러는데 느린게 아니고 접근이 안됩니다.

@silverprize
Copy link
Member

ssh 연결이 자꾸 끊기는데 끊긴뒤 한동안 재접속이 안됩니다. 재접속 안되는 동안 https://dev-web.jakduk.com 접속도 안됩니다.

@Pyohwan
Copy link
Member Author

Pyohwan commented Oct 22, 2019

@silverprize
ssh 끊기는거는 저도 집에서도 가끔 그런거 같아요. (내부망임에도)
이사하기 전엔 안이랬는데, 이런거 보면 SKB 공유기 문제일것이라고 추측합니다.
혹시 ssh 끊길때 직전에 무엇을 수행했는지 공통점이 있다면 알려주세요.

@Pyohwan
Copy link
Member Author

Pyohwan commented Oct 22, 2019

@silverprize
방금 시도 해봤는데,

pyohwanjang@Pyohwanui-MacBook-Pro ~ % curl https://dev-api.jakduk.com
{"timestamp":"2019-10-22T14:18:57.121+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}%                                                    pyohwanjang@Pyohwanui-MacBook-Pro ~ % curl https://dev-wev.jakduk.com
curl: (6) Could not resolve host: dev-wev.jakduk.com
pyohwanjang@Pyohwanui-MacBook-Pro ~ % curl https://dev-web.jakduk.com
<!DOCTYPE html>
<html lang="ko-KR">
  <head>
    <title>K리그 작두왕</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />

dev-api.jakduk.com 는 스프링 컨테이너 다 뜨면 즉시 되고, dev-web.jakduk.com 은 요번엔 한 10초 정도 걸린거 같아요.

@Pyohwan Pyohwan reopened this Dec 21, 2019
@Pyohwan
Copy link
Member Author

Pyohwan commented Dec 21, 2019

다시 한번 살펴봐주세요.

  • 은상님은 재현안되는지?
  • 제 생각으론 upstream 즉 node.js 쪽에서 응답이 느린거 같고, 그래서 nginx 에서 타임아웃 처리 한거 같습니다.
    • dev-api.jakduk.com 으로는 트래픽이 아예 안들어왔어요. 즉, dev-web.jakduk.com 에서 요청을 받고 응답을 안준거 같아요.
2019/12/22 00:02:03 [error] 7025#0: *43177 upstream prematurely closed connection while reading response header from upstream, client: 192.168.55.162, server: dev-web.jakduk.com, request: "GET /home HTTP/2.0", upstream: "http://192.168.55.143:3000/home", host: "dev-web.jakduk.com"
2019/12/22 00:03:03 [error] 7025#0: *43952 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.55.162, server: dev-web.jakduk.com, request: "GET /favicon.ico HTTP/2.0", upstream: "http://192.168.55.143:3000/favicon.ico", host: "dev-web.jakduk.com", referrer: "https://dev-web.jakduk.com/home"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants