SERVER/Etc2016.11.15 16:32

1. 실제 여유 메모리 측정

리눅스의 경우 사용한 메모리에 대해서 캐쉬 영역에 반환하지않고 잡아 두고있음

그래서 서버 메모리 free 사이즈가 거의 없는 경우라고 판단 할 수 있음

실제로는 여유 메모리는 buffer_cache의 free로 보면됨


$ free -m -t
             total       used       free     shared    buffers     cached
Mem:         16042      15218        823          0        257       4649
-/+ buffers/cache:      10312       5730
Swap:         2043         14       2029
Total:       18086      15233       2852

자세한 설명은 아래 링크 참고

http://zetawiki.com/wiki/리눅스 명목메모리사용률, 실질메모리사용률


2. swap 사용 최소화

위에 보면 Buffer free가 있는데도 swap 발생하는 이슈가 있는 데 해당 이슈의 경우

swapoff 하던지 아니면 아래 같이 최소화 하는 방안이 있다.

#SWAP 사용량 최소화로 변경 (값범위 0 ~ 100 / 기본값 60 ) $ sysctl vm.swappiness=1 vm.swappiness = 1 #재부팅시에도 적용 $ vi /etc/sysctl.conf vm.swappiness = 1 #현재 swap 초기화 $ swapoff -a $ swapon -a #메모리 확인 $ free -m -t total used free shared buffers cached Mem: 16042 15168 874 0 258 4666 -/+ buffers/cache: 10244 5798 Swap: 2043 0 2043 Total: 18086 15168 2918

자세한 설명은 아래 링크 참고

 - http://zetawiki.com/wiki/리눅스_swappiness


3. 캐쉬 메모리 해체

0: 기본

1: Page cache를 해제 한다.

2: inode, dentry cache를 해제 한다.

3: Page cache, inode cache, dentry cache를 모두 해제 한다.

# Page cache 반환 처리

$ free -m -t
             total       used       free     shared    buffers     cached
Mem:         16042      15218        823          0        257       4649
-/+ buffers/cache:      10312       5730
Swap:         2043         14       2029
Total:       18086      15233       2852

$ echo 1 > /proc/sys/vm/drop_caches $ free -m -t total used free shared buffers cached Mem: 16042 10522 5519 0 2 359 -/+ buffers/cache: 10160 5881 Swap: 2043 0 2043 Total: 18086 10522 7563

자세한 설명은 아래 링크 참고

 - http://tumblr.lunatine.net/post/28546340998/faq-linux-메모리-효율을-위한-vfscachepressure

 - http://zetawiki.com/wiki/리눅스_캐시_메모리_비우기

Posted by 시니^^

elasticsearch 2.x 부터 Root로 보안상문제로 아래와 같이 실행되지 않음


Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.


그리고 shutdown 관련되서 기존 curl로 shutdown가 되지 않음 


https://www.elastic.co/guide/en/elasticsearch/reference/2.1/cluster-nodes-shutdown.html

The _shutdown API has been removed. Instead, setup Elasticsearch to run as a service (see Running as a Service on Linux or Running as a Service on Windows) or use the -p command line option to write the PID to a file.


yum(rpm)으로 설치 할 경우  init.d 스크립트를 만들어줘서 상관 없지만 그냥 소스 파일 가져다가 내가 원하는 위치에 압축풀어서 사용하므로 간단하게 만들었음 현재로서는 내가 원하는 기능만 간략하게~
상황에 따라서 추후 업데이트 예정

#!/bin/sh

DIR=$(echo $(cd $(dirname $0); pwd))

ES_HOME=${DIR}
ES_USER=elasticsearch
ES_HEAP_SIZE=1g
MAX_LOCKED_MEMORY=unlimited
MAX_OPEN_FILES=65535
MAX_MAP_COUNT=200000
PID=${ES_HOME}/elasticsearch.pid

if ! id -u "$ES_USER" >/dev/null 2>&1; then
    groupadd $ES_USER
    useradd -s /sbin/nologin -g $ES_USER $ES_USER
fi

case "$1" in
  start)
    chown -R ${ES_USER}.${ES_USER} ${DIR}

    if [ -n "$MAX_OPEN_FILES" ]; then
        ulimit -n $MAX_OPEN_FILES
    fi

    if [ -n "$MAX_LOCKED_MEMORY" ]; then
        ulimit -l $MAX_LOCKED_MEMORY
    fi

    if [ -n "$MAX_MAP_COUNT" -a -f /proc/sys/vm/max_map_count ]; then
        sysctl -q -w vm.max_map_count=$MAX_MAP_COUNT
    fi

    if [ -e ${PID} ] && [ ps -p `cat ${PID}` > /dev/null 2>&1 ]; then
       echo "Error - elasticsearch Running"
    else
       sudo -u ${ES_USER} ES_HEAP_SIZE="${ES_HEAP_SIZE}" ${ES_HOME}/bin/elasticsearch -d -p ${PID}
    fi

    ;;
  stop)
    if [ -e ${PID} ] ; then
       kill `cat ${PID}`
    fi
    ;;
  *)
    echo $"Usage: $0 {start | stop}"
    exit 1
esac
exit 0


추가로 host 처리 디폴트 localhost(127.0.0.1) 또는 아이피 동시 안되는 문제는 network.host 아래와 같이 하면됨

Allow binding to multiple addresses

https://github.com/elastic/elasticsearch/issues/13592

network.host: 0.0.0.0


Posted by 시니^^
TAG bash

Kibana Plugin 모음


https://github.com/elastic/kibana/wiki/Known-Plugins



Visualizations


Posted by 시니^^

티스토리 툴바