최근 nginx 서버를 돌리는데 중간중간에 Resource temporarily unavailable 오류가 발생하는 것을 확인했다.

오류는 아래와 같았다.

Datetime [error] 4027#0: *178859567 connect() to unix:///home/sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: client_ip, server: localhost, request: "GET path HTTP/1.1", upstream: "uwsgi://unix:///home/sock:", host: "host_ip"


이 오류를 해결하기 위해 몇가지를 시도해보았다.

1. uwsgi와 같이 사용하기 때문에 uwsgi에서 발생하는 오류인줄 알고 uwsgi가 requests를 처리 못하여 생기는 오류인줄 알고 max-requests값을 높여보았지만 효과없었다.

2. "소켓 접속 제한를 초과하여서 발생하는 오류이다."라는 또 다른 가설을 세우고 제한를 조정해보았다.

sysctl -a | grep somaxconn
net.core.somaxconn = 127


default로 설정이 되어있었으며 이 값을 10240으로 변경해주었다.

sudo /sbin/sysctl -w net.core.somaxconn=10240


변경 후에도 큰 변화는 아니지만 오류 발생 빈도가 줄어들었지만, 여전히 오류가 발생한다.

3. Django를 nginx+uwsgi 로 해서 돌리고 있었다. 오류를 좀 더 확인하기 위해서 Django를 devserver형태로 돌렸다. 디버깅도 확인해보니 오류를 뿜어낸다.

Too many open files 라는 오류가 발생했다. 이때 알았다. 리눅스에서는 시스템 자원 값을 제한할 수 있고 이것은 동적으로 잡아주지 않는 다는 것을...

일단 Too Many open files 라는 오류를 잡기 위해 ulimit 으로 값을 변경해보기 시작했다.

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128192
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 128192
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


초기값을 확인하고 1024인 초기값은 512000 으로 변경을 해주었다.

sudo ulimit -n 512000


으로 바로 변경할 수 있다. 하지만 이렇게 할 경우 재부팅했을 경우에 설정값이 다시 처음으로 되돌아 가기 때문에 바뀌지 않게 하기 위해 설정파일을 변경해준다.

sudo vim /etc/security/limits.conf 


파일을 열어 제일아래에 아래와 같이 입력을 해준다.

*   hard    nofile  512000


모든 유저들의 open files의 설정값을 512000으로 변경하겠다는 내용이다.
*을 변경하여 특정 유저만 해당하게 설정값을 변경할 수 있다.
hard와 soft의 차이점이 soft한 제한과 hard한 제한이라고 하는대 뭔지 잘 모르겠다.


그리고 나서 다시 돌려보니 오류빈도는 확 줄었지만 서버를 오랫동안 켜두니 또 502 error를 뱉는다. (짜증난다.... 왜이러는거냐)

파일 오픈 제한값을 더 늘려보기도 했지만 비슷한 상황이였다. ulimit -a를 통해 옵션값을 보던중 max user processes 라는 영역이 보였고 해당값도 조정을 해주었다.

명령어로는

sudo ulimit -u 512000


으로 할 수 있고

*   hard    nproc   512000
*   sofr    nproc   512000


설정 파일에서는 위와 같이 item값을 nproc로 해주면 재부팅해도 계속해서 해당 값을 사용할 수 있다.

이제는 서버가 잘 돌아간다 ^0^



내가 검색능력이 부족하여 삽질하는 시간이 길었고, 인맥이 부족하여 물어볼 사람이 없었기 때문에 삽질하고 이 문제를 해결하는데 오래 걸렸다고 생각한다.

어쨋든 해결했으니 좋은것 아닌가 :)


5조 7천억원
올해 주택담보대출이 크게 늘었다. 이것과 함께 많이 증가한 것이 마이너스통장 대출이다. 올해 들어 10월 말 까지 증가한 시중은행의 마이너스 통장 대출 증가 폭이 5조 7천억 원이다. 2008년 금융위기 이후 가장 큰 폭으로 증가를 한 것이다. 은행들이 주택담보대출의 조건을 강화하면서 마이너스통장 대출을 받는 사람들도 늘어났다는 분석이 있다.
이주열 한국은행총재가 어제 한 간담회에서 신흥국들에서 조만간 위기가 발생할 가능성이 크다 하면서 큰 불안요인으로 과도한 민간부채를 지적했다. 신흥국이면서 민간부채가 많이 늘어난 나라로는 우리나라도 예외는 아니다. 서양 속담 중 겨울이 오기 전에 양털을 깎아라 라는 속담이 있다. 요즘 대기업들이 너도나도 사업을 재편하고 구조조정에 나서는 것도 같은 맥락으로 볼 수 있겠다.

변동금리로 돈을 빌리게 될 경우 코픽스라는 용어를 듣게 된다. 코픽스는 매달 달라지는 변동금리의 기준이 되는 숫자이다. (코픽스가 오르면 대출금리도 오르고 내리면 대출 금리도 내리는 방식)
코픽스는 은행이 돈을 조달할 때 원가가 얼마나 들었는지를 반영한다고 한다. 그런데 신규기준 코픽스가 10개월 만에 반등했다.
코픽스가 떨어지기만 하다가 지난달 대비 0.03% 올랐다.
신규 코픽스는 지난 한 달 동안 신규로 조달한 자금의 평균 금리이다. 잔액 코픽스는 전체 잔액에 대한 금리이다.
신규 코픽스의 경우는 지난 10월에 예금금리가 올랐기 때문에 오른 것이다.
1년의 정기예금 금리의 경우 1.5% 이하까지 떨어졌다가 최근 은행에서는 1.7% 정도의 금리를 준다. 이렇게 예금 금리가 오르면서 신규 코픽스 금리도 오를 수밖에 없었다.
내년에는 금융당국이 대출 조건을 더 강화한다고 한다.
정부 규제가 가시화된 것은 없다. 가계부채가 걱정스러울 정도로 꾸준히 늘고 있으니 대출 조건이 강화될 수밖에 없다. 그리고 규제가 강화된다면 금리상품이 될 수밖에 없는데 강화되기 전에 하는 것이 상대적으로 더 좋다.
은행에 가게 되면 변동금리 상품을 고르라고 하는 데, 어떤 것을 골라야 하는가
CD금리, 코픽스, 금융채 3가지 금리를 은행에서는 주로 사용한다. 3가지의 큰 차이는 금리가 몇 개월마다 변동되는가이다.
CD금리는 3개월, 코픽스는 6개월, 금융채는 5년마다 금리가 변경된다. 지금은 금리 상승에 대비할 때라고 봐야 한다 주택담보대출을 받는 상황이 온다면 큰 금액이고 장기간 대출을 받아야 하므로 고정금리 대출이 좀 더 유리할 수도 있다.

'손에 잡히는 경제' 카테고리의 다른 글

2015-11-17  (0) 2015.11.17
2015-11-16  (0) 2015.11.16
2015-11-12  (0) 2015.11.12
2015-11-11  (0) 2015.11.11
2015-11-10  (0) 2015.11.10

우분투를 사용하면 apt-get install 을 통해 많은 패키지들을 설치 한다.


그리고 가끔 설정등을 갈아엎고 새로 시작하고 자 할때 패키지를 지우고 재설치를 하는 경우가 종종있는는데


이 때 간혹 설정파일이 다시 안생기는 경우가 있다. (nginx라던가... nginx라던가...


보통 지울때 apt-get remove 도 사용하고 apt-get purge 도 사용하는대, 이런 경우에는 뭘 해도 안된다.


이럴때는 dpkg --get-selections 를 통해서 설치된 패키지들을 확인하고 관련된 패키지도 지워주면된다.



nginx의 경우 14.04에서 종종 이런 이슈가 발생하는 것 같은데


nginx는 nginx-common이 purge로도 지워지지 않아서 생기는 문제로 확인이 된다.


저거 지우고 다시하면 잘됨



검색어

nginx: confighuration file /etc/nginx/nginx.conf test failed

cat: /etc/nginx/nginx.conf: No such file or directory

how to nginx reinstall

+ Recent posts