본문 바로가기
반응형

uwsgi5

uwsgi processes, threads 값을 조정하여 서버 성능 향상하기 uwsgi 실행을 위해 .ini 파일을 작성할 때, processes, threads 값을 조절하여 현재 서버가 요청을 동시에 얼마나 처리할지 결정할 수 있다. 기본적인 파일 예시는 아래와 같다. 이 값을 따로 만지지 않으면, 최저 사양으로 서버가 돌기 때문에, 코어 개수가 4대임에도 프로세스가 단 하나만 생성되어 동시 요청이 많이 들어오는 경우, 몇몇 요청은 TIMEOUT 에러를 받을 수 있다. 때문에, 서버의 사양에 맞춰서 적절한 프로세스, 스레드 개수를 설정하면 많은 동시 요청을 적절하게 대응하여 처리할 수 있다. [uwsgi] module = wsgi:app master = true processes = 8 threads = 16 enable-threads = true socket = :5050 .. 2021. 1. 13.
uWSGI listen queue of socket ... full !!! (100/100) Ubuntu 16.04 에서 만든 uwsgi 서비스가 돌연 *** uWSGI listen queue of socket ":5050" (fd: 6) full !!! (101/100) *** 와 같은 메시지를 뿜으며 모든 요청이 블락되는 경우가 있다. (101/100) 로 미루어보아, 현재 큐 101 가 최대 큐 100 사이즈를 초과하면서 생긴 문제다. 최대 큐 사이즈는 uwsgi 실행시 --listen {큐사이즈} 로 설정하여 늘려줄 수 있다. 그러나 net.core.somaxconn 값보다 큐 사이즈를 크게 할 수 없으므로, 우선 이 값의 맥스 커넥션부터 키운다. sudo sysctl net.core.somaxconn=1024 그 다음 uwsgi 실행을 할 때, /usr/local/bin/uwsgi --.. 2020. 12. 10.
Ubuntu 16.04 & Python 3.6 사용할 때 mysqldb, uwsgi 에러 발생시 해결 sudo apt-get install python3.6-dev libmysqlclient-dev pip install mysqlclient pip install uwsgi 참고자료: github.com/openai/gym/issues/757 2020. 11. 27.
Nginx 설정으로 분리된 Web, WAS 연결하기 가장 기초적인 단계로는 우분투 서버 한 대에 nginx 설정을 하고, 같은 공간에 서버 프로그램도 둬서 릴리즈를 하는 경우가 있지만, 이런 경우 Web, WAS(Web Application Server)가 분리되지 않아 보안이 취약할 수 있다. 보통 Web과 WAS는 다른 Zone으로 분리되어 있으며, WAS는 내부망으로 설정하여 외부에서 어떠한 접속도 하지 못한다. WAS 로는 DMZ Zone 에 있는 Web으로부터 걸러 들어온 요청만 들어올 수 있게 설계하는 것이 가장 좋다. 이는 다음에 AWS Web, WAS 분리에서 다뤄보겠다. 우선 Web, WAS 가 분리되어 있다고 하고, WAS는 이전 글에 작성한대로 어플리케이션이 이미 실행중이라고 가정한다. nginx 설정은 아래와 같이 할 수 있다. su.. 2020. 11. 27.
Ubuntu 16.04 Flask, django uwsgi 서비스 등록하기 Flask, django로 개발을 마친 후에 우분투 기반으로 서버를 가동하고 싶을 때, 사전 작업으로 기존에 쓰던 app.py 혹은 manage.py 를 사용하지 않고, 서버용 스크립트를 따로 만든다. 나는 보통 네이밍을 wsgi_{environment}.py 로 만드는데, 스크립트는 기존 앱과 거의 비슷하게 생겼지만, 해당 서버용 스크립트는 기존 디버그 환경과는 다른 변수로 세팅하는 목적이 있다. (환경 변수로 커버할 수 있으면 같은 것 써도 무방하긴 할 듯..) 우선 ubuntu 에서 uwsgi 설치를 해야 한다. pip3 install uwsgi 그 다음 서비스에 관련된 정보를 넣을 dev.ini 파일을 만든다 [uwsgi] module = wsgi:app # wsgi.py 에서 app 으로 정의된.. 2020. 11. 27.
반응형