16.6.2 memcached 사용
memcached 사용을 시작하려면 하나 이상의 서버에서 memcached 서비스를 시작합니다. memcached를 실행하면 서버가 설정되어 메모리를 할당하고 클라이언트에서 접속 대기가 시작됩니다.
memcached를 실행할 때, 하나의 특권 TCP / IP 포트 (1024 이하)에서 대기하는 경우를 제외하고 권한을 가진 사용자 ( root
) 일 필요는 없습니다. 그러나 setrlimit 또는 이와 유사한 기능을 사용하여 메모리 제한이 설정되어 있지 않은 사용자를 사용해야합니다.
서버를 시작하려면 권한이없는 (즉, root
이외의) 사용자로 memcached를 실행합니다.
shell> memcached
기본적으로 memcached는 다음 설정을 사용합니다.
64M 바이트의 메모리 할당
모든 네트워크 인터페이스에서 포트 11211를 사용하여 연결을 기다립니다
최대 1024 개의 동시 연결을 지원합니다
일반적으로 memcached를 시작할 때 필요한 옵션의 완벽한 조합을 지정하고 일반적으로 memcached의 초기화를 처리하는 시작 스크립트를 제공합니다. 예를 들어, 다음 줄은 캐시에 최대 1024M 바이트의 RAM을 할당하고 IP 주소 192.168.0.110 포트 11211에서 대기 백그라운드 데몬으로 실행하도록 memcached를 시작합니다.
shell> memcached -d -m 1024 -p 11211 -l 192.168.0.110
memcached 부팅시 시작되도록하려면 init 스크립트와 구성 매개 변수를 확인하십시오.
memcached는 다음 옵션을 지원합니다.
-u user
root
로 memcached를 시작하려면-u
옵션을 사용하여 memcached의 실행을위한 사용자를 지정합니다.shell> memcached -u memcache
-m memory
객체를 저장하기 위해 memcached에 할당 할 메모리의 양을 설정합니다. 기본은 64M 바이트입니다.
캐시에 할당 할 메모리의 양을 늘리려면
-m
옵션을 사용하여 할당 RAM의 양 (MB)를 지정합니다. 할당 RAM의 양이 많을수록 저장할 수있는 데이터의 양이 많아지고, 캐시의 효율성도 향상됩니다.경고사용 가능한 RAM보다 큰 메모리 할당을 지정하지 마십시오. 지정한 값이 너무 크면 memcached에 할당 된 RAM의 일부에 물리적 RAM이 아닌 스왑 공간이 사용됩니다. 이렇게하면 데이터가 RAM에 직접 저장되지 않고 디스크에 스왑되기 때문에 값을 저장 및 검색 할 때 지연이 발생할 수 있습니다.
vmstat 명령의 출력을 사용하면 다음
free
컬럼에 표시된대로 사용 가능한 메모리를 얻을 수 있습니다.shell> vmstat kthr memory page disk faults cpu rbw swap free re mf pi po fr de sr s1 s2 - - in sy cs us sy id 0 0 0 5170504 3450392 2 7 2 0 0 0 4 0 0 0 0 296 54 199 0 0 100
예를 들어, 3G 바이트의 RAM을 얻으려면 :
shell> memcached -m 3072
4G 바이트의 제한을 초과 메모리에 액세스하기 위해 PAE를 사용하는 32 비트 x86 시스템에서는 최대 프로세스 크기 이상의 RAM을 할당 할 수 없습니다. 이 문제를 해결하려면 memcached의 여러 인스턴스를 실행하고 각각 다른 포트에서 대기합니다.
shell> memcached -m 1024 -p11211 shell> memcached -m 1024 -p11212 shell> memcached -m 1024 -p11213
참고모든 시스템 (특히 32 비트)에서 memcached 응용 프로그램과 메모리 설정 모두에 대해 충분한 여유를 확보하십시오. 예를 들어, 4G 바이트의 RAM을 탑재 한 전용 memcached 호스트가있는 경우는 3500M 바이트 이상의 메모리 크기를 설정하지 마십시오. 이것은 못한 경우에는 충돌과 심각한 성능 문제가 발생할 수 있습니다.
-l interface
접속을 대기하는 네트워크 인터페이스 / 주소를 지정합니다. 기본적으로 사용 가능한 모든 주소 (
INADDR_ANY
)에서 대기합니다.shell> memcached -l 192.168.0.110
IPv6 주소 지원 memcached 1.2.5에서 추가되었습니다.
-p port
연결에 사용하는 TCP 포트를 지정합니다. 기본값은 18080입니다.
shell> memcached -p 18080
-U port
연결에 사용하는 UDP 포트를 지정합니다. 기본값은 11211입니다. 0을 지정하면 UDP를 사용할 수 있습니다.
shell> memcached -U 18080
-s socket
대기에 사용하는 Unix 소켓을 지정합니다.
클라이언트와 동일한 서버에서 memcached를 실행하려면
-s
옵션을 사용하면 네트워크 인터페이스가 비활성화 로컬 Unix 소켓을 사용할 수 있습니다.shell> memcached -s / tmp / memcached
Unix 소켓을 사용하면 네트워크 지원이 자동으로 비활성화 네트워크 포트가 절약됩니다 (Web 서버 나 다른 프로세스에 더 많은 포트를 사용할 수 있습니다).
-a mask
Unix 소켓에서 사용하는 액세스 마스크 (8 진수)를 지정합니다. 기본값은 0700입니다.
-c connections
memcached 서비스에 대한 최대 동시 연결 수를 지정합니다. 기본값은 1024입니다.
shell> memcached -c 2048
이 옵션은 (memcached 서비스에 과부하를 피하기 위해) 연결 수를 줄이거 나 연결 수를 늘려 memcached 서버를 실행하는 서버를보다 효과적으로 이용하기 위해 사용합니다.
-t threads
받은 요청을 처리 할 때 사용하는 스레드 수를 지정합니다.
기본적으로 memcached는 4 개의 병렬 스레드를 사용하도록 구성됩니다. 스레드가 잠금 시스템을 사용하여 다른 스레드에서 동일한 값 덮어 쓰거나 업데이트를 방지함으로써 캐시의 데이터 저장 및 검색 성능을 향상시킵니다. 스레드 수를 증감하려면
-t
옵션을 사용합니다.shell> memcached -t 8
-d
memcached를 데몬 (백그라운드) 프로세스로 실행합니다.
shell> memcached -d
-r
코어 파일의 최대 크기를 최대화합니다. 이렇게하면 문제가 발생했을 때 메모리 영역 전체가 setrlimit에서 설정된 한계까지 코어 파일로 디스크에 덤프됩니다.
-M
메모리가 소진 될 때 클라이언트에 오류를 반환합니다. 이것은 캐시에서 오래된 항목을 삭제하고 새로운 항목이 들어가게하는 정상적인 작동을 대신하여 적용됩니다.
-k
페이징 된 모든 메모리를 잠급니다. 그러면 새 항목이 캐시에 저장 될 때 메모리의 새로운 슬래브를 할당하지 않고 사용하기 전에 메모리가 확보됩니다.
참고잠금 가능한 메모리 양에 사용자 수준의 제한이 있습니다. 사용 가능한 메모리 용량을 초과 할당하려고하면 실패합니다. (
-u user
사용자가 아닌) 데몬을 시작할 때 사용하는 사용자에 대한 제한을 설정하려면 쉘에서 ulimit -S -l NUM_KB을 사용합니다-v
중복 모드. 메인 이벤트 루프를 실행하는 동안 오류 및 경고를 출력합니다.
-vv
높은 중복 모드.
-v
출력되는 정보 이외에 개별 클라이언트 명령과 응답도 출력됩니다.-vvv
슈퍼 중복 모드.
-vv
에서 출력되는 정보뿐만 아니라, 내부의 상태 천이도 표시됩니다.-h
도움말 메시지를 출력하고 종료합니다.
-i
memcached와
libevent
라이센스를 출력합니다.-I mem
memcached 인스턴스에 저장할 수있는 개체의 최대 크기를 지정합니다. 이 크기는 단위 접미사 (킬로바이트을 나타내는
k
메가 바이트를 나타내는m
)를 지원합니다. 예를 들어, 지원되는 최대 개체 크기를 32M 바이트로 늘리려면 :shell> memcached -I 32m
지정할 수있는 최대 개체 크기는 128M 바이트 기본값은 1M 바이트입니다.
이 옵션은 1.4.2에서 추가되었습니다.
-b
백 로그 큐 제한을 설정합니다. 백 로그 큐가 memcached에 의한 처리를 대기 할 수있는 네트워크 연결의 수가 구성됩니다. 이 제한을 늘리면 클라이언트가 memcached 인스턴스에 연결할 수없는 오류를 수신하는 횟수가 줄어들 가능성이 있지만, 서버의 성능이 향상되지 않습니다. 기본값은 1024입니다.
-P pidfile
memcached 인스턴스의 프로세스 ID를
file
에 저장합니다.-f
청크 크기의 증가 계수를 설정합니다. 새로운 메모리 청크를 할당하면 새로운 청크 할당 크기는 기본 슬래브 크기에이 계수를 곱하여 결정됩니다.
대규모 테스트를 실시하지 않고이 옵션의 효과를 확인하려면
-vv
명령 행 옵션을 사용하여 계산 된 슬래브 크기를 표시합니다. 자세한 내용은 섹션 16.6.2.8 "memcached 로그" 를 참조하십시오.-n bytes
키를 + 값 + 플래그 정보에 할당되는 최소 공간. 기본값은 48 바이트입니다.
-L
큰 메모리 페이지를 지원하는 시스템에서 대규모 메모리 페이지의 사용을 활성화합니다. 큰 메모리 페이지를 사용하면 memcached는 하나의 큰 덩어리로 항목 캐시를 할당 할 수있게 메모리에 액세스 할 때 실수 수가 줄어들고 성능이 향상 될 수 있습니다.
-C
비교 앤드 스왑 (CAS) 작업의 사용을 해제합니다.
이 옵션은 memcached 1.3.x에서 추가되었습니다.
-D char
기본 문자 키 프리픽스와 ID의 구분으로 사용하도록 설정합니다. 이것은 프리픽스 단위의 통계 보고서에 사용됩니다 ( 섹션 16.6.4 "memcached 통계 가져 오기" 를 참조하십시오). 기본값은 콜론 (
:
)입니다. 이 옵션을 사용하면 통계 수집이 자동으로 켜집니다. 사용하지 않은 경우stats detail on
명령을 서버로 전송하여 통계 수집을 활성화 할 수 있습니다.이 옵션은 memcached 1.3.x에서 추가되었습니다.
-R num
이벤트 프로세스 당 최대 요청 수를 설정합니다. 기본값은 20입니다.
-B protocol
바인딩 프로토콜 (즉, 클라이언트 연결에 대한 기본 memcached 프로토콜 지원)을 설정합니다. 옵션은
ascii
,binary
또는auto
입니다. 자동 (auto
)가 기본입니다.이 옵션은 memcached 1.4.0에서 추가되었습니다.