stripe_cache_size를 영구적으로 만들기


15

내가 했어

echo 8192 > /sys/block/md0/md/stripe_cache_size

RAID 성능을 향상시키기 위해 많은 도움이되었습니다.

그러나 나는 그것을 영구적으로 만드는 방법을 여전히 알 수 없습니다.

/etc/rc.local에서 설정하려고했습니다. 다른 명령이 실행되었지만 다른 곳에서 256으로 덮어 썼습니다 ... 어떤 힌트?


아래 답변에서 의견을 다시 게시하십시오. StackExchange의 작동 방식을 잘 모르기 때문에 잘 보았는지 확실하지 않습니다. 흠 ... RAID가 없으므로 일종의 긴 샷이지만 'grep -R 256 / etc / init.d '및'grep -R stripe_cache_size /etc/init.d '?
zpletan

1
sysfsutils 패키지가 문제를 해결하는 데 도움이됩니까?
zpletan

답변:


16

다음과 같이 udev 규칙을 추가하십시오 /etc/udev/rules.d/60-md-stripe-cache.rules.

SUBSYSTEM=="block", KERNEL=="md*", ACTION=="change", TEST=="md/stripe_cache_size", ATTR{md/stripe_cache_size}="8192"

나는 실제로 이것을 시도하지 않았으므로 100 % 맞지 않을 수도 있지만 (오타 일 수도 있음) 가깝습니다. man udev자세한 내용을 확인하십시오 .

나중에 다음 규칙을 실행하여 새 규칙을 즉시 적용 할 수도 있습니다.

udevadm trigger
udevadm control --reload-rules

1
정말 고마워요, 이것은 마침내 완벽한 해결책입니다 :-) 구문은 괜찮습니다. 이름 앞에 60-을 추가하고 램프를 재생성했습니다.
BarsMonster

1
감사. 우분투 13.10에서는 여전히 이것이 문제라고 믿을 수 없습니다. 스트라이프 캐시 크기를 훨씬 더 관대 한 값으로 변경하여 암호화 된 RAID에서 다른 RAID로 복사하는 동안 <10MB / s에서 100MB / s로 정지합니다.
frostschutz

다른 사람들에게는 분명합니다 : 적어도 현대 우분투 시스템 (제 경우 17.04), 아마도 다른 사람들은이 새로운 규칙을 만든 후에 initramfs ( "sudo update-initramfs -u")를 다시 작성해야합니다. 그렇지 않으면 실제로는 그렇지 않습니다 자동으로 적용됩니다.
Bryan Henry

1

마지막 게시물을 확장하기 만하면됩니다. 아래의 스크립트는 저에게 효과적입니다. "<...>"사이에 세부 정보를 교환하십시오. 즐겨!


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#################NOTE######################
##  You are limited by CPU and memory too #
##  <Your Name> <Date of Modification>    #
##  stripe cache size and read-ahead      #
###########################################
echo 16384 > /sys/block/<Your RAID5 or 6 Volume>/md/stripe_cache_size
blockdev --setra 16384 /dev/<Your RAID5 or 6 Volume>

exit 0

3
답변은 보통 투표로 순위가 매겨 지므로 답변이 귀하가 언급 한 답변 위에 표시 될 수 있으므로 "마지막 게시물을 확장해야합니다"라고 말하지 마십시오. 저자 이름으로 게시물을 참조하십시오. 훨씬 더 명확합니다.
워렌 힐

0

나는 또한 이것을 알아 내려고 노력하고있다. 나는 rc.local에 내 것을 넣고 운이 없다. 로그인 후 수동으로 시작합니다.이를 처리하고 "시작 응용 프로그램"에 넣을 스크립트를 작성할 수 있지만 그놈에 로그인하지 않은 경우 전혀 도움이되지 않습니다.


우분투 서버이므로 운이 없습니다.
BarsMonster

0

sysfsutils 패키지가 문제를 해결하는 데 도움이됩니까?

원래 답변 :

귀하의 질문에 의견을 제시하는 방법을 알 수 없습니다. 문제에 대해 더 많이 알게되면이 답변을 편집 할 것입니다.

출력을 게시 할 수 있습니까 (또는 긴 경우 pastebin)

grep -R md0 /etc/init.d

거기에 아무것도 없습니다.
BarsMonster

흠 ... 나는 RAID가 없기 때문에 일종의 롱 샷이지만 'grep -R 256 /etc/init.d'와 'grep -R stripe_cache_size /etc/init.d'를 시도해 볼 수 있습니까?
zpletan

둘 다 결과를 반환하지 않았습니다.
BarsMonster

0

나는 당신을위한 진정한 대답이 없지만 간단한 시작 스크립트를 만들 수 있습니다. 확장자가 .conf 인 / etc / init에 파일을 작성하십시오. 파일에 다음을 입력하십시오.

start on started tty1

exec echo 8192 > /sys/block/md0/md/stripe_cache_size

내 생각은 터미널이 시작된 시간 쯤에 명령을 실행해야한다는 것입니다. 아마도 명령을 실행하는 것과 거의 같습니다.


이미 이것을 시작 스크립트 (rc.local)에 넣으려고했지만 도움이되지 않았습니다. 또한 Ubuntu Server이므로 재부팅 후 AFAIK 터미널이 없을 수 있습니다.
BarsMonster

나는 이것을 rc.local 메소드의 대안으로 제안하고 있었다. 나중에 시작될 수도 있습니다. 나는 정말로 모른다.
user1974

터미널의 부족에 대해서는 전혀 모른다. 시작 후 서버에 tty가없는 이유는 무엇입니까? 터미널이라고 할 때도 같은 의미입니까? 에 관계없이, 당신이 명령을 실행하는 데 다른 서비스를 사용할 수 있습니다, 단지 변경tty1
user1974

0

테스트 할 RAID 5 설정이 없으므로 어둠 속에서 총 샷 :

chmod -w /sys/block/md0/md/stripe_cache_size

rc.local에서 설정 후 쓰기 권한을 제거하십시오. 어쩌면 다른 곳에서 변경되는 것을 막을 수 있습니까?


좋은 생각이지만 우분투 부팅 과정에서 무언가가 망가진 것 같습니다 : -S 오늘 시도하고 게시 할 것입니다.
BarsMonster

도움이되지 않았다 :-|
BarsMonster

0

추가

echo 8192 > /sys/block/mdX/md/stripe_cache_size

/etc/rc.local.


질문을보십시오-이것은 내가 시도한 첫 번째 것이며 작동하지 않았으며 md-driver가 다시 초기화되었거나 rc.local이 실행 된 후 무언가였습니다.
BarsMonster

-1

이 페이지 에서는 fs를 설정할 때 스트라이프 크기 (또는 너비)를 설정해야한다고 제안합니다. 튠프가 여기에 도움이 될까요?


2
완전히 다른 것입니다. 스트라이프 캐시 크기는 스트라이프 캐시 용 메모리의 MD 커널 드라이버에 대한 설정입니다.
BarsMonster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.