나는 이것을 읽었습니다 - How does the lazy expiration mechanism in memcached operate?지연된 만료 Memcached
그래서 질문이 있습니다. memcached의 모든 항목을 주기적으로 확인하고 만료 된 항목이 제거되도록 각 항목에 대한 GET 요청을 보내는 프로그램을 직접 만들 수 있습니까?
내가 원하는 이유는 Memcached에서 사용 된 비율을 적절하게 제어하기를 원하기 때문입니다. 그 백분율이 100 %에 가까워지면 더 많은 메모리를 추가해야하는지, 또는 만료 된 항목이 많아 걱정하지 않아도되는지 절대 확신 할 수 없습니다.
내가 PHP를 사용하고, 불행하게도이 (단서 이유) memcached와의 모든 항목을 반환하지 않습니다 : 당신이 더 많은 메모리를 추가해야하는 경우
$allSlabs = $memcache->getExtendedStats('slabs');
foreach ($allSlabs as $server => $slabs) {
foreach ($slabs as $slabId => $slabMeta) {
$cdump = $memcache->getExtendedStats('cachedump', (int)$slabId);
foreach ($cdump as $keys => $arrVal) {
foreach ($arrVal as $key => $v) {
echo $key, "\n";
}
}
}
}
확실하지 않지만 "사용 된 백분율"만료되지 않은 항목 만 검사한다고 가정합니다. 캐시가 100 %에 가까운 적이 없었지만 만료 된 항목이 사용으로 계산됩니다. -stats, 더 커져야 만하고 그렇지 않습니다. %가 변동합니다 (up 및 down). 활성 퍼지가 전혀 필요하지 않다고 생각합니까? LRU는 만료 된 항목을 교체하여 _after_ 만 사용하는 것이 합리적입니다. – Nanne
일부 MB에 대한 정크를 추가하고 만료 날짜 이후 %가 여전히 높은지 확인합니다. 감사합니다. – Nuno
아직까지 감소하지 않았습니다. 그것은 10 분 후에 감소하기로되어있었습니다. 그러나 나는 당신이하는 말을 알고 있습니다. 왜냐하면 나는 그것이 나에게도 변동하는 것을 보았 기 때문입니다. 그러나 시간이 좀 걸릴 수 있습니다. – Nuno