OpenSource Story Board 387

Nginx 백엔드 서버 부하분산 설정

다수의 upstream 서버를 사용하여 라운드로빈 기능은 구현이 가능하나, 이 upstream 서버들간의 부하를 적절게 설정을 하기 위해서는 다음과 같은 방법을 통한 부하분산(load balancing) 설정이 필요합니다. 부하분산을 위해서는 'upstream fair module' 이라는 서드파티 모듈의 설치가 필요합니다. upstream fair module은 라운드로빈 방식으로 비교적 한가한 서버를 체크하여 그 서버에게 서비스를 요청을 합니다. 1. 모듈을 다운로드 합니다. wget http://github.com/gnosek/nginx-upstream-fair/tarball/master 2. 엔진엑스를 새 모듈과 함께 컴파일을 합니다. tar xvzf ./master cd /nginx/src/ng..

Nginx 다중 백엔드 설정

작은사이트에서는 하나의 백엔드 프로세스(WAS)만 있으면 유입되는 모든 트래픽을 처리하는데 충분합니다. 하지만 사용자가 점점 증가를 함에따라 다중 백엔드 설정이 필요한데 그 방법에 대해서 알아보도록 하겠습니다. upstream backend { server ktds.com:8280; # 10초동안 한번의 에러가 발생하면 작동하지 않는 서버로 간주. server ktds.com:8080 weight=5; # 백엔드 서버에 대한 가중치 설정. server ktds.com:8180 max_fails=3 fail_timeout=30s; # 30초동안 3번의 요청 실패가 발생하면 이 서버는 작동하지 않는 서버로 간주. server ktds.com:8280 backup; server ktds.com:8380 bac..

PHP에서 PostgreSQL 사용하기

PHP에서 PostgreSQL 사용하기 PHP pgsql 사용하기 확인 php.ini 위치 확인 [root@jmnote ~]# php -i | grep php.ini Configuration File (php.ini) Path => /etc/php.ini → php.ini는 /etc에 있다. extension 폴더 확인 먼저 extension이 설치될 위치를 확인한다. [root@jmnote ~]# php -r "phpinfo();" | grep ^extension extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules → 각종 extension들은 /usr/lib64/php/modules에 설치되어 있다. so 파일 확인 해당 폴더에 pdo..

SQL_DUMP VS SQL_DUMPALL

1. SQL_DUMP - ORACLE EXPORT와 동일 (EXPORT의 FULL=Y, DUMPALL 사용) - PG_DUMP Command를 실행하는 순간의 DATA, Export - 문법 : PG_DUMP [OPTIONS] [DBNAME] > [FILENAME] OPTION NAME DESCRIPTION f FILENAME 출력파일이름 F FORMAT(c,t,p) p(plain) : Text (Default) c(custem) : Binary 형태 t(tar) : Tar 형태 a DATA ONLY 스키마 제외 데이터만 s SCHEMA ONLY 스키마만 t TABLE NAME 지정한 이름의 테이블만 n SCHEMA NAME 지정한 이름의 스키마만 2. SQL_DUMPALL - PG_DUMP와 동일 (단..

JBoss의 서비스 포트 정의

* JBoss의 서비스 포트 정의 - Service Binding Manager에 의해 포트 관리. - binding set 이라고 하는 포트 구성 정보를 제공. - 포트 충돌을 방지하고자 port-default 값에 100씩 증분하여 정의. o JBoss service port set port-default ports-01 ports-03 ports-04 JNDI 1099 1199 1299 1399 HA-JNDI 1100 1200 1300 1400 HTTP 8080 8180 8280 8380 AJP 8009 8109 8209 8309 RMI 1090 1190 1290 1390 o JBoss 포트관리 예제 - 버전 : JBoss 6.1.0.Final - 위치 : conf/bindingervice.bean..

Linux NetworkManager 데몬으로 인한 네트워크 이상현상

NetworkManager 의 기능? 자동으로 최대 사용가능한 연결에 네트워크 연결을 스위칭 하는 데몬 NetworkManager 설정 방법 1. NetworkManager 데몬 Start # chkconfig NetworkManager on // 모든 레벨 NetworkManager start # chkconfig --level 234 NetworkManager on // 234 레벨 NetworkManager on 2. NetworkManager 데몬 Stop # chkconfig NetworkManager off // 모든 레벨 NetworkManager stop # chkconfig --level 234 NetworkManager on // 234 레벨 NetworkManager off 발생한 N..

[Postgresql] Lock Session 확인 및 정리 가이드

* Lock Session 확인 및 정리 가이드 세션(1) pid=3516 (Blocking Session) kyh=# select pg_backend_pid(); pg_backend_pid ---------------- 3516 kyh=# begin; kyh=# update kyh1 set test='kyh' where test='kyh2'; UPDATE 26 세션(2) pid=6532 (Wait Session) pg_backend_pid ---------------- 6532 kyh=# begin; kyh=# update kyh1 set test='kyh3' where test='kyh2'; ~ lock발생 (1) blocking세션으로 인한 wait session확인하기 kyh=# select pi..

[postgreSQL] vacuum 이란

Vacuum 이란 ? Vacuum 은 PostgreSQL 에서만 (다른 RDBMS에 없는) 고유 명령이다.PostgreSQL에서 특정 Row를 업데이트 할 경우, 디스크 상의 해당 Row를 물리적으로 업데이트하여 사용하지 않고, 새로운 영역을 할당해 쓴다. Update 또는 Delete 가 된 후, 해당영역이 자동으로 재사용되거나 사라지지 않는다. 이렇게 오래된 영역을 재사용하거나 정리해주는 명령어가 Vacuum 이다.따라서 Update, Delete, Insert 가 많이 일어나는 DB 의 경우는 Vacuum 을 주기적으로 해주는 것이 좋다. Vacuum 실행 구조 PostgreSQL에서는 특정 Row가 Update나 Delete 되어도, 물리적인 저장공간은 삭제되지 않고 남게 된다. 이런 오래된 행 ..