●CentOS 6

 

vi /etc/sysconfig/iptables

 

현재 설정보기

iptables -nvL

 

특정 IP 차단

iptables -I INPUT -s 10.10.10.10 -j DROP

 

특정 IP 허용

iptables -A INPUT -s 10.10.10.10 -j ACCEPT

 

특정 포트 차단

iptables -A INPUT -p tcp --dport 3306 -j DROP

 

특정 IP의 포트 허용

-A INPUT -m state --state NEW -s 0.0.0.0 -m tcp -p tcp --dport 22 -j ACCEPT

 

설정 전부 삭제

iptables --flush

 

80포트 접속 허용

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

 

특정 아이피 포트 허용

-A INPUT -m state --state NEW -s xxx.xxx.xxx.xxx -m tcp -p tcp --dport 3306 -j ACCEPT

 

이후 아래로 차단(INPUT 과 FORWARD)

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

 

service iptables restart

 

옵션 :

-A : 기존 룰에 추가

-j : 패킷이 정책과 일치 할 경우 실행 할 타깃을 지정

-p : 프로토콜과의 일치 여부를 확인하여 설정( tcp, udp 등 )

-s : 특정 네트워크만 허용

 

●CentOS 7

 

vi /etc/firewalld/zones/public.xml

 

일반적 포트허용

<port protocol="tcp" port="22"/>

 

특정 아이피 포트허용

<rule family="ipv4">
    <source address="192.168.0.100"/>
    <port protocol="tcp" port="22"/>
    <accept/>
  </rule>

 

systemctl restart firewalld

 

'OS' 카테고리의 다른 글

[리눅스] 버전 확인  (0) 2016.06.15
[리눅스] IP변경  (0) 2016.06.08
[리눅스] 방화벽 iptables 설정  (0) 2016.04.05
[리눅스] 시간 자동 동기화  (0) 2015.11.09
[리눅스] 프로세스 죽이기  (0) 2015.09.26
[apache] 자동재시작  (0) 2015.09.26
Posted by 꼬장 꼬장e

댓글을 달아 주세요

● 공통

 

 ▶ ntpd 를 설치
  # yum install ntp

 

● Centos6 


 ▶ nptd 데몬을 시작
  # /etc/init.d/ntpd start


 ▶ 부팅시에도 자동 실행설정
  # /sbin/chkconfig ntpd on
 
 ▶ 테스트 위해서 수작업 동기화
  # ntpdate -d 0.centos.pool.ntp.org


 ▶ 동기화 확인
  # grep ntpd /var/log/messages|tail

 

● Centos7

 

 ▶ 가까운 곳에 있는 시간 서버를 사용 변경 ( 서버 주소는 http://www.pool.ntp.org/에서 구할수 있다 )

   #vi /etc/ntp.conf 수정

 

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

 

 ▶ ntp 서비스를 사용할 수 있도록 방화벽을 설정

   # firewall-cmd --add-service=ntp --permanent

 

 ▶ 방화벽을 다시 로드

   # firewall-cmd --reload

 

 ▶ nptd 데몬을 시작
  # systemctl start ntpd


 ▶ 부팅시에도 자동 실행설정
  # systemctl enable ntpd
 

● 공통


 ▶ 테스트 위해서 수작업 동기화
  # ntpdate -d 0.centos.pool.ntp.org


 ▶ 동기화 확인
  # grep ntpd /var/log/messages|tail

'OS' 카테고리의 다른 글

[리눅스] IP변경  (0) 2016.06.08
[리눅스] 방화벽 iptables 설정  (0) 2016.04.05
[리눅스] 시간 자동 동기화  (0) 2015.11.09
[리눅스] 프로세스 죽이기  (0) 2015.09.26
[apache] 자동재시작  (0) 2015.09.26
[apache] Prefork와 Worker 설정  (0) 2015.09.23
Posted by 꼬장 꼬장e

댓글을 달아 주세요

출처 : http://blog.naver.com/dudwo567890?Redirect=Log&logNo=130156854673

 

>> kill명령어 <<

리눅스시스템에서 실행되어 있는 많은 프로레스들은 거의 대부분은 init프로레스에 의해서 프로세스관리가 된다.

하지만 kill명령어를 이용하면 특정프로세스에 대하여 직접 원하는 작업들을 수행할수 있다. 해당 프로세스에 특정시그널을 보냄으로서 종료나 재시작 등 여러 작업을 할수 있다는 뜻이다.

kill명령어는 특정프로세스를 죽이기 위해 주로 사용되지만 사실 kill명령어는 특정프로세스에 특정시그널을 보내는 명령어이다. 이 시그널중에 종료하는 시그널을 보냄으로서 해당프로세스를 종료하는것이다. 따라서 종료시그널외에도 여러 시그널을 보낼수 있다.

프로세스에게 보낼수 있는 시그널은 아래와 같은 것들이 있다.

Num

이름

Num

이름

Num

이름

1

SIGHUP

2

SIGINT

3

SIGQUIT

4

SIGILL

5

SIGTRAP

6

SIGABRT

7

SIGBUS

8

SIGFPE

9

SIGKILL

10

SIGUSR1

11

SIGSEGV

12

SIGUSR2

13

SIGPIPE

14

SIGALRM

15

SIGTERM

16

SIGSTKFLT

17

SIGCHLD

18

SIGCONT

19

SIGSTOP

20

SIGTSTP

21

SIGTTIN

22

SIGTTOU

23

SIGURG

24

SIGXCPU

25

SIGXFSZ

26

SIGVTALRM

27

SIGPROF

28

SIGWINCH

29

SIGIO

30

SIGPWR

31

SIGSYS

34

SIGTMIN

35

SIGTMIN+1

36

SIGTMIN+2

37

SIGTMIN+3

38

SIGTMIN+4

39

SIGTMIN+5

40

SIGTMIN+6

41

SIGTMIN+7

42

SIGTMIN+8

43

SIGTMIN+9

44

SIGTMIN+10

45

SIGTMIN+11

46

SIGTMIN+12

47

SIGTMIN+13

48

SIGTMIN+14

49

SIGTMIN+15

50

SIGTMAX-14

51

SIGTMAX-13

52

SIGTMAX-12

53

SIGTMAX-11

54

SIGTMAX-10

55

SIGTMAX-9

56

SIGTMAX-8

57

SIGTMAX-7

58

SIGTMAX-6

59

SIGTMAX-5

60

SIGTMAX-4

61

SIGTMAX-3

62

SIGTMAX-2

63

SIGTMAX-1

64

SIGTMAX

 

 

, 특정프로세스에게 실행종료시그널, 재시작시그널등 명령어의 의미에서도 알수 있듯이 주로 프로세스를 종료하는 용도로 사용되는 명령어이다. 또한 root는 모든 프로세스에 대하여 kill명령어를 사용할수 있으나 일반사용자들은 자기가 실행시킨 프로세스에 대해서만 kill명령어를 사용할수 있다.

 

kill명령어에서 위의 시그널을 특정프로세스에게 보내고자 할때

시그널번호를 입력해도 되고 시그널이름을 입력해도 된다.

, 특정프로세스를 kill명령어를 이용하여 종료시킬때에는

kill -9 [프로세스] 또는

kill -SIGKILL [프로세스] 둘중 아무거나 사용해도 결국 똑같다.

 

-. 프로세스 재시작(-1,-SIGHUP)

여기서 프로세스재시작은 서비스재시작이 아니다. restart등으로 http를 재시작하는것과는 다른 개념이다.

시그널번호 1번을 옵션으로 주고 프로세스(PID)를 지정하면 해당 프로세스를 재시작하도록 하는 시그널을 보낸다.

kill -1 [pid]

위와 같이 사용하면 된다.

[root@os1 ~]# ps -ef | grep atd

root      2343     1  0 Jan16 ?        00:00:00 /usr/sbin/atd

root      3852  2427  0 04:40 pts/0    00:00:00 grep --color=always atd

[root@os1 ~]# kill -1 2343

[root@os1 ~]# ps -ef | grep atd

root      2343     1  0 Jan16 ?        00:00:00 /usr/sbin/atd

root      3854  2427  0 04:40 pts/0    00:00:00 grep --color=always atd

 

>> killall명령어 <<

killall명령어는 이름에서도 알수 있듯이 특정프로세스를 한번에 죽이는 명령어이다.

killall [프로세스명] 을 으로 사용하게 되면 지저한 프로세스 명을 가진 모든 프로세스가 종료된다.

, httpd데몬이 여러개 실행되어있을경우 모두 종료하고자 한다면 killall httpd를 사용하면 된다.

 

-. killall의 주요 옵션

-i : 프로세스 종료전 물어보기(y,n)

-v : 진행현황 확인

-w : 지정한 프로세스들이 모두 종료될때까지 종료시도를 함

-[signum] : 특정시그널 지정하여 보내기

 

-. 프로세스종료전 확인하기(-i)

killall 명령어에 [-i] 옵션을 사용하면 프로세스를 종료하기전 확인메시지를 물어본다.

y를 입력하면 해당 프로세스가 종료되며, n를 입력하면 종료되지 않는다.

pid값으로 확인을 하기때문에 종료하면 안되는 프로세스는 미리 pid값을 알고 있는것이 좋을것이다.

 

-. killall명령어를 이용한 진행도보기(-v)

killall명령어를 이용하여 특정프로세스들에게 시그널을 보낼때 별다른 출력을 하지 않는다. 이때 -v옵션을 주어 화면에 진행도를 출력하도록 할수 있다.

 

-. 특정시그널 지정하여 보내기(-signum)

kill명령어와 사용했던 방법과 동일하다 -[signum] 인자를 주어 지정한 프로세스들에게 특정 시그널을 보내는것이다.

killall -9 httpd httpd의 프로세스들을 모두 종료하는 명령어이며,

killall -1 httpd httpd의 프로세스들을 모두 재시작하는 명령어이다.

 

kill5명령어란,

killall5 명령어는 SystemV계열의 명령어로서 kernel, threads와 커널소류의 세션프로세스를 제외한 시스템의 모든 프로세스에게 특정시그널을 보내는 명령어이다.

따라서 이 명령어로 SIGKILL시그널을 보내게 되면 시스템의 모든 프로세스에게 종료시그널을 보내게 되므로 시스템이 종료된다.

또한 이 명령어는 특정프로세스를 지정할수 없다.

이 명령어를 통해 시스템을 종료시키는건 정상적인 종료가 아니기때문에 함부로 실행해선 안된다.

 

 

참조 : 리눅스 서버관리 실무 바이블 3.0(박성수 저)

'OS' 카테고리의 다른 글

[리눅스] 방화벽 iptables 설정  (0) 2016.04.05
[리눅스] 시간 자동 동기화  (0) 2015.11.09
[리눅스] 프로세스 죽이기  (0) 2015.09.26
[apache] 자동재시작  (0) 2015.09.26
[apache] Prefork와 Worker 설정  (0) 2015.09.23
[아파치] 최적화  (0) 2015.09.22
Posted by 꼬장 꼬장e

댓글을 달아 주세요

[apache] 자동재시작

OS 2015. 9. 26. 12:28

#vi apache_auto_restart.sh


while ( true ) ; do
  if [ "`ps -ef | grep -v grep | wc -l`" -ge "400" ] ; then
    service httpd restart
    date >> /etc/httpd/logs/apacherestart.log
  fi
  sleep 5
done


조건문 설명

  gt(크다), le(작거나 같다), lt(작다), eq(같다)


백그라운드 실행 ( &붙이면 백그라운드 실행 )

  sh apache_auto_restart.sh &


정상실행중인지 확인

  ps -ef  | grep apache_auto_restart.sh


'OS' 카테고리의 다른 글

[리눅스] 시간 자동 동기화  (0) 2015.11.09
[리눅스] 프로세스 죽이기  (0) 2015.09.26
[apache] 자동재시작  (0) 2015.09.26
[apache] Prefork와 Worker 설정  (0) 2015.09.23
[아파치] 최적화  (0) 2015.09.22
[윈도우] 시스템 드라이브 변경  (0) 2015.06.26
Posted by 꼬장 꼬장e

댓글을 달아 주세요

출처 : http://trend21c.tistory.com/1351

 

이 아파치 에러로그는 말 그대로 설정된 MaxClients 수치에 이미 서버가 도달했으니 이 수치를 올리는 것을 고려하라는 로그입니다.


MaxClients 에 도달하면 이외의 초과 접속은 허용되지 않습니다.


MaxClients 세팅을 늘리는 것을 고려해야죠.


여러분이 아파치를 설치한 환경에 따라 http.conf 파일을 수정하셔야 합니다.




Prefork



옵션 설명

StartServer
아파치 구동시에 자식 프로세스 개수 지정

MinSpareServers, MaxSpareServers
부하가 적어서 MinSpareServers 개수 보다 적었을 경우 최소한 이 개수 만큼 유지하려고 아파치가 노력하고 부하가 증가하여 프로세스 개수가 많아질 경우에 MaxSpareServers 개수 이하로 줄이려고 아파치는 노력한다. 즉, 절대적인 수치가 아니다.


ServerLimit

최대 자식 프로세스 수, MaxClients 와 동일하게 해주시면 됩니다.


MaxClients
초기 시작시 실행가능한 최대 아파치 자식 프로세스의 개수를 지정
*worker방식의 MaxClient 와는 전혀 다른 의미임.

MaxReqeustPerChild

클라이언트들의 요청 개수를 제한. 만약 자식 프로세스가 이 값만큼의 클라이언트 요청을 받았다면 이 자식 프로세스는 자동으로 죽게 된다. 0 일 경우엔 무한대


설정값 확인 방법


# /usr/local/apache2/bin/apachectl -l





prefork.c 가 보이면 prefork로 동작하고 있는것입니다.




※ worker 로 변경하는 방법


# vi /etc/sysconfig/httpd

#HTTPD=/usr/sbin/httpd.worker

위 주석을 제거 한후 아파치 재기동 합니다.

# service httpd restart

# apachectl -l

로 확인했을때 worker.c 가 있다면 성공




Worker


옵션 설명 


StartServers
시작시에 생성되는 서버 프로세스의 개수

MaxClient
동시 연결가능한 클라이언트의 최대 개수.

MinSpareThreads

최소 thread 개수

MaxSpareThreads
최대 thread개수

ThreadPerChild
개별 자식 프로세스가 지속적으로 가질 수 있는 Thread의 개수

MaxRequestPerChild
자식 프로세스가 서비스할 수 있는 최대 요청 개수


현재 worker 모듈 설치 되었는지 확인을 위해서는 위의 방법뿐만아니라

httpd -V 명령으로 확인 가능합니다. (V는 대문자)


 

# httpd -V


 



Server MPM 에 나타나는 값으로 확인 가능합니다.

'OS' 카테고리의 다른 글

[리눅스] 프로세스 죽이기  (0) 2015.09.26
[apache] 자동재시작  (0) 2015.09.26
[apache] Prefork와 Worker 설정  (0) 2015.09.23
[아파치] 최적화  (0) 2015.09.22
[윈도우] 시스템 드라이브 변경  (0) 2015.06.26
[리눅스] CentOS PHP mssql 사용 셋팅  (0) 2014.11.04
Posted by 꼬장 꼬장e

댓글을 달아 주세요

[아파치] 최적화

OS 2015. 9. 22. 23:32

출처 : http://openlife.tistory.com/340 


이전에 워드프레스 성능 개선팁이라는 게시물을 포스팅했습니다. 비단 워드프레스 블로그에 국한되는 이야기는 아니며 가장 널리 쓰이는 웹서버인 아파치에서 동시접속자를 튜닝하는 방법을 설명하고자 합니다. 여기서 설명하는 것이 절대적인 진리는 아니며 시스템을 꾸준히 모니터링하면서 알맞은 값을 직접 찾으셔야 합니다.

웹 서버를 며칠간 재시작하지 않고 놔둬서 현재 서비스 상태를 파악하는 게 가장 좋을 것 같습니다. 간단히 아파치 서버와 클라이언트 사이의 동시 소켓 연결 개수를 확인하기 위해 아래와 같이 명령합니다.

$ netstat -nta | grep :80.*ESTABLISHED | wc -l

이 연결 개수는 아파치 서버가 현재 처리 중인 소켓 연결 개수이며 앞으로 설명할 MaxClients 수를 넘지 않도록 유의해야 합니다.

그런데 아직 서비스를 시작하기 전이라 웹 서버의 부하를 확인하기가 어렵다면 아파치 벤치마킹 도구(ab)를 이용해볼 수도 있습니다.

$ ab -n 3000 -c 200 http://example.com/

위 명령어는  http://example.com 사이트에 200명의 사용자가 15번씩 총 3000번 요청하는 것입니다. 사이트 주소의 끝에 / (슬래시)를 붙이는 것을 잊지 마세요. 여러 페이지를 계속 접속 시도해 동시접속 부하를 주세요. 그리고 여러 가지 시스템 상황을 모니터링해봅시다.

이렇게 부하를 줘가면서 시스템의 메모리 현황을 측정하겠습니다. 아래 예제에서는 물리 메모리가 2000MB로 확인되었습니다.

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2000        664       1335          0         15         86
-/+ buffers/cache:        562       1437
Swap:          875        344        531
이제 MySQL 메모리 사용량을 측정합니다.
$ ps aux | grep mysql | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
9.11328

그리고 아파치의 메모리 사용량도 측정합니다.

$ ps aux | grep apache2 | awk '{print $6}' | awk '{total = total + $1} END {print total/1024}'
1848.07

아파치 프로세스의 개수도 계산합니다.

$ ps aux | grep apache2 | wc -l
183

그럼 아파치 전체 메모리 사용량을 아파치 프로세스 개수로 나누어 계산해서 아파치 프로세스 평균 메모리 사용량은 약 10.09MB라는 것을 알았습니다. 따라서 이론적인 최대동시연결수는 아래와 같이 계산할 수 있습니다.

(전체 메모리 – MySQL 메모리 사용량) / 아파치 프로세스 평균 메모리 사용량

= (2000 – 9.11) / 10.09

= 197.31

램이 2G인 서버에서 동시연결소켓수가 197.31이면 이미 최대라는 이야기입니다. 실제 서버에는 bind, ssh, postfix, dovecot 다른 데몬 등이 돌아가고 있을 수 있으므로 이 값은 더 줄어듭니다.

아파치에서 동시접속을 처리하는 방법을 이해해야 합니다. 동시접속 처리방법에는 프로세스를 이용하는 법(prefork 방식)과 스레드를 이용하는 법(worker 방식)이 있습니다. 아파치 서버의 기본 동작은 prefork 방식입니다.

 

 

 

 

 

prefork 방식은 위 그림처럼 하나의 연결은 스레드가 하나인 자식 프로세스가 처리합니다. 프로세스를 만드는 비용은 스레드를 만드는 비용보다 더 크고 메모리를 더 많이 차지합니다. 하지만 프로세스간 메모리를 공유하지 않아 서로 독립적이기 때문에 문제가 있는 연결이 다른 연결을 간섭하지 않습니다.

반면에 worker 방식은 위 그림처럼 자식 프로세스 안에 여러 스레드가 있고 이 스레드는 하나의 연결을 처리합니다. 스레드를 만드는 것이 프로세스를 만드는 것보다 속도가 더 빠르고 메모리를 덜 차지하지만 문제가 생긴 스레드는 자식 프로세스 안의 다른 스레드까지 망가뜨릴 위험이 있습니다. 또한 경쟁상태(race condition)도 조심해야합니다.

여기서는 가장 널리 쓰이는 prefork 방식이며 이제 본론으로 들어가 최대동시접속자수를 어떻게 튜닝할지 이야기하겠습니다.

앞서 계산해서 얻은 값을 토대로 튜닝한다면 아파치의 prefork 지시어 설정은 아래와 같이 할 수 있습니다.


여기서 기억해둘 사항은 캐싱을 적극적으로 활용하면 아파치 프로세스가 10MB 정도 차지하지만 캐싱하지 않으면 프로세스당 메모리가 30MB까지도 잡힙니다. 즉, PHP 코딩이 아파치 프로세스의 메모리 사용량에 영향을 주고 최대동시접속연결수도 영향을 줍니다. 그리고 MaxClients 값을 비롯해 StartServers 등의 값을 너무 크게 잡으면 오히려 아파치 프로세스의 점유 메모리가 더 커지는 현상이 있으므로 적당한 값을 지정해야 합니다.

ServerLimit 값은 최대 자식 프로세스의 수인데 MaxClients 값보다 높게 설정하지 않아야 합니다. 구글링하다보면 MaxClients 값을 256 이상 지정하기 위해서 아파치 소스를 다시 컴파일해야 한다는 게시물들이 있는데 그럴 필요가 없습니다. 최대값이 2000이라 이미 충분히 큽니다. MaxClients 값이 2000을 넘길 필요가 없다면 여러분은 ServerLimit와 MaxClients 값을 동일한 값으로 지정해주면 됩니다.

StartServer 값은 아파치 데몬을 처음 시작할 때 프로세스 개수이며 이 값은 MinSpareServer 또는 MaxSpareServer의 값과 일치시켜주면 됩니다.

MinSpareServers와 MaxSpareServers 값은 요청을 기다리는 몇 개의 자식 프로세스를 여분으로 둘 지 범위를 지정합니다. 아파치 데몬이 프로세스의 개수를 이 범위 안으로 두기 위해 노력하지만 이를 보장하지는 않습니다. 초당 4개 이상의 자식 프로세스를 생성(spawn)하지 않도록 설정해야 합니다. 보통은 MinSpareServers 값은 MaxClients의 10~25% 정도 크기의 값으로 MaxSpareServers 값은 25~50% 크기의 값으로 지정합니다. 그러나 이 값이 커지면 아파치 프로세스의 점유 메모리도 함께 커지는 현상이 있으니 크다고 능사는 아니므로 유념하세요.

아파치 웹 서버는 오픈소스로서 끊임 없이 패치하고 있지만 C로 작성되어 있어 메모리 누수(leak)나 무한루프 등의 서버 부하(load) 발생할 수도 있습니다. 그래서 일정 횟수 동안 클라이언트 요청을 처리하고 프로세스가 죽도록 되어 있습니다. 아파치 매뉴얼에서는 디폴트로 클라이언트 요청을 10,000번 처리하고 죽는다고 합니다. 이 클라이언트 요청을 몇 번 처리하고 프로세스가 죽을지는 MaxRequestPerChild 값의 변경해 지정할 수 있으며 시스템 사양이 좋다면 이 값을 넉넉히 할 수 있으며 프로세스가 절대 죽지 않도록 하려면 0으로 합니다. 3000에서 4000 정도 주면 적당하지 싶습니다.

이외에도 Timeout, KeepAlive, MaxKeepAliveRequests, MaxKeepAliveTimeout 같은 옵션도 성능에 영향을 미칩니다.

Timeout 10

기본적으로 소켓 연결 유지 시간입니다. 클라이언트가 요청하여 아파치와 연결된 이후로 이 시간 동안 아무런 메시지가 없으면 오류로 처리됩니다. 네트워크 회선 상태가 좋지 않으면 이 값을 크게 할 수 있습니다. 국내 사용자만 고려한다면 10초 정도 국외 사용자까지 고려하면 20초가 좋습니다.

KeepAlive를 On 해으면 첫 요청시에 열어 놓은 연결을 KeepAliveTimeout에서 지정한 시간 동안 끊지 않습니다. 그래서  img src=”http://~” 태그로 이미지를 많이 링크하고 있으면 매번 소켓을 열지 않기 때문에 접속 속도가 향상됩니다. 하지만 동시접속자수는 줄어들 수 있습니다.이 블로그의 경우에는 동시 접속자가 많지 않으므로 빠른 접속 속도를 위해 켰습니다.

KeepAliveTimeout 2

국내 접속자가 많으면 3초 이하 국외 접속자가 많으면 10초까지 지정할 수 있다고 합니다. 10초 이상은 메모리 점유로 동시접속자가 크게 감소할 수 있다고 판단됩니다.

MaxKeepAliveRequests 100

KeepAlive 상태에서 처리할 최대 요청 수로 보통 웹 사이트에서는 100 정도 지정하면 충분합니다.

참고로 개인 블로그가 아닌 정말 접속자가 많은 사이트를 운영할 경우에는 관리상 웹 어플리케이션 서버와 이미지 서버를 분리해 운영하는 것이 맞습니다. 특히, 웹 어플리케이션 서버의 경우에는 KeepAlive Off로 하고 이미지 서버는 연결 유지를 위해 KeepAlive On으로 설정해두기도 합니다.

워드프레스뿐만 아니라 아파치를 쓰는 어떤 웹서비스나 적용 가능한 팁입니다. 이제 쌩쌩 달리는 아파치를 경험하세요.



'OS' 카테고리의 다른 글

[apache] 자동재시작  (0) 2015.09.26
[apache] Prefork와 Worker 설정  (0) 2015.09.23
[아파치] 최적화  (0) 2015.09.22
[윈도우] 시스템 드라이브 변경  (0) 2015.06.26
[리눅스] CentOS PHP mssql 사용 셋팅  (0) 2014.11.04
[리눅스] CentOS 한글 설정[펌]  (0) 2014.11.04
Posted by 꼬장 꼬장e

댓글을 달아 주세요

regedit


HKEY_LOCAL_MACHINE / SYSTEM / MountedDevices 로 이동합

DosDevices\C 와 DosDevices\E 같이 변경

Posted by 꼬장 꼬장e

댓글을 달아 주세요

가끔 이전 버전에서 안되는 경우 갱신을 해줘야 한다

rpm -ivh http://ftp.neowiz.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

 

새로운 버전이 나오면 http://ftp.neowiz.com/fedora-epel/6/i386/ 로 가서 이름 확인후

"epel-release-6-8.noarch.rpm" 부분을 변경 해준다.

 

 

 

 

이후 설치

yum install php-mssql

 

ReferedURL(PHP에서 사용되는 MSSQL Function): http://php.net/manual/en/ref.mssql.php

ReferedURL: http://serverfault.com/questions/387661/install-php-mssql-in-centos-6-2

 

 

Posted by 꼬장 꼬장e

댓글을 달아 주세요

Gnome에서 한글 설정

 

다음과 같이 Korean 한글 설치

[Applications]-[Add/Remove Software]-[Languages] 설치

 

영문버전으로 설치 시 한글 설정

 

한글 폰트 설치

# yum install kde-i18n-Korean
# yum install fonts-korean

한글 관련 모든 패키지 설치

# yum groupinstall korean-support -x xorg-x11-server-Xorg

/etc/sysconfig/i18n 파일 수정

LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8;en_US;en;ko_KR;eucKR;ko_KR;ko"
SYSFONT="lat0-sun 16"

다음과 같이 적용

# source /etc/sysconfig/i18n

만약, 이 방법으로 문제 해결이 되지 않는다면 다음 내용 확인

# fc-cache

 

font를 바탕으로 변경

 

fc-cache를 하지 않아서 font가 리스트에 나오지 않았다. 설정에 나오지 않는다면 이 명령을 실행해야 한다.

언어 설정 후, logout-login 한다.

 

출처 : http://www.blogcodi.net/archives/12329?cat=1759

Posted by 꼬장 꼬장e

댓글을 달아 주세요

[출처] http://goo.gl/w0AsnU


# 설치환경
- CentOS 5.x (64bit)
- mysql 5.1.59
  설치위치: /home/APM/mysql


1. 슬로우쿼리란?

- 일정 시간을 초과하는 쿼리에 대해 로그를 남김으로써 로그 분석을 통해 쿼리 성능을 개선해 나갈 수 있다



2. 슬로우로그 쿼리 활성화

- /etc/my.cnf 파일에 다음과 같이 추가합니다.
- 3초 이상 지속되는 쿼리를 슬로우쿼리로그에 저장하게 됩니다.

[root@cafe24 ~]# vi /etc/my.cnf
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
max_connections = 2048

#default-character-set=euckr
#character-set-client-handshake = FALSE

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking

# slow qeury log
log-slow-queries = /home/APM/mysql/var/mysql-slow.log               <-- 추가합니다
long_query_time = 3

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------


- 설정이 완료되었으면 mysql을 재시작하여 적용합니다.

[root@cafe24 ~]# /etc/rc.d/init.d/mysql restart
Shutting down MySQL.                                       [  OK  ]
Starting MySQL.                                                 [  OK  ]
[root@cafe24 ~]#



* slow query 로그에 항목은 다음과 같습니다.

- Time          : 쿼리요청시간

- User@Host : 쿼리를 요청한 User와 호스트

- Query_time : 실제 수행시간

- Lock_time   : 락이 걸린 시간

- Rows_sent  : 쿼리결과로 나온 열(Row)의 수

- Rows_examined : 쿼리대상의 열(Row)수

- 가장하단 : 수행된 쿼리문

Posted by 꼬장 꼬장e

댓글을 달아 주세요