2012-02-09 1 views
3

에서에서 가상 메모리에 레디 스 문서를 읽기 : 그들은이 수행하기 위해 사용되는 스레드의 최대 수입니다 "라고"VM-MAX-스레드 "에 관해서 http://redis.io/topics/virtual-memory레디 스 가상 메모리는 2.6

I/O를 스왑 파일에서 /로 변경하는 것이 좋습니다. 시스템의 코어 수와 일치시키는 것이 좋습니다. "

왜 이것이 코어의 수와 일치해야하는지 이해하지 못합니다. 일단 redis 스왑에서 조회가 이루어지면이 스레드 중 하나로 위임됩니다. 그러나 일시 중단 된 IO를 즉시 입력 할 것입니다. CPU가 다른 작업을 수행 할 수 있도록 읽기 파일 호출을 발행 한 후 대기 단계?

답변

3

Redis VM은 Redis 2.4에서 더 이상 사용되지 않으며 Redis 2.6에서 제거되었습니다. 막 다른 길 : 사용하지 마십시오.

vm-max-threads에 코어 수를 사용하는 것은 경험적 방법 일뿐입니다. 당신이 지적했듯이,이 쓰레드는 동기 I/O의 완료를 기다리는 작업을 기다리고있을 것입니다. 또한 이러한 스레드는 동적으로 생성됩니다.

실제로 올바른 값은 이러한 스레드의 순수 CPU 사용량이 아니라 I/O 병렬화 방법에 따라 다릅니다. 스왑 파일이 SSD 디스크 배열에서 스트라이핑 된 경우 더 많은 스레드를 사용하면 의미가 있습니다 (CPU 코어 수 이상 가능). 스왑 파일이 단일 회전 디스크에있는 경우에는 그렇지 않습니다. 하지만 파일 시스템 캐시 때문에 일부 I/O는 논리적으로 유지되므로 물리적 대기 상태가 생성되지 않으므로 최소한 코어 수를 늘리는 것이 일반적으로 좋은 선택입니다.

+0

감사합니다. 내 이해를 완료하기 위해 내 다른 질문에 대해 의견을 말할 수 있습니다. http://stackoverflow.com/questions/9206042/redis-default-blocking-vm 건배 –

+0

가상 메모리가 제거 되었기 때문에 RAM 메모리 제한이 적용될 때 디스크에있는 메모리를 사용하도록 Redis를 구성하려면 어떻게해야합니까? – harsimranb

+0

Redis는 메모리를 사용하고 시스템이이를 바꿀 수 있도록 특정 구성을 할 필요가 없습니다. Redis 내부 데이터 구조는 지역에 맞게 설계되지 않았으므로 스왑 아웃 된 메모리에 액세스해야 할 때 결과 시스템이 효율적이지 않다는 것을 빨리 알 수 있습니다. 이 경우 Redis를 사용하지 않는 것이 좋습니다. RedisLabs는 이러한 목적으로 설계된 NVM 장치를 목표로하는 Redis의 특징을 가지고 있습니다. 종류 언급을 위해 –