아래 내용에 대해서는 본인이 몇일 사용해 본정도밖에 없으며,
특별한 피드백을 받은적이 없어서 결과에 대해서 알지 못합니다.
특별히 시스템에 위해적인 내용은 아니니 몇일 사용해 보셔도 큰 문제는 없습니다.
출처)
http://blog.naver.com/dowkim10/120119483848
(이전 벼리님 답글 땜에 글 한번 더 올렸네요..ㅎㅎ)
----------------------------------------------------------------------------------------
파일에 대한 억세스(read,write)에 대한 지연과 리눅스에서 사용하는 IO 스케듈러와 밀접한 관련이 있다. http://www.wlug.org.nz/LinuxIoScheduler Noop은 단순하며 ssd장치의 수명과 연관한다면 좋을수 있으며, Anticipatory는 핀을 사용하는 하드 디스크에 적합할 수 있으나 IO 딜레이가 큰편이며, deadline은 프로세서의 IO요청에 대해 특정 시간내에 처리를 하므로 starvation(굶는것)을 방지하고 response타이을 줄여 유저 인테페이스 반응을 좋게 한다. 일반적인 대부분의 리눅스 시스템(redhat, ubuntu)등은 CFQ를 사용하고 있다. 이는 CFQ가 하드 디스크를 사용하는 일반적인 환경에서 처리량 및 지연에 대해서 좋은 성능을 보여주고 있기 때문이다. (갤럭시s도 CFQ를 사용한다.) response time 또는 IO delay가 가장 작은 것은 스케듈러는 deadline 스케듈러이다. 하지만, 단점은로 IO에 대한 억세스가 더 많으므로 플래시 수명에는 더 안좋으며, 전체적인 성능은 좀 떨어진다. 쿼드런트 벤치마크 및 RL 벤치마크 적용법 여기서 {DEVICE-NAME}에 들어갈수 있는 내용으로는 순정 커널 사용자라면 mmcblk0이 가장 크게 영향을 미칠 것으로 보이며, 임시적으로 몇일 사용해 보는 것은 시스템에 큰 영향이 없다. 사용예) 사용후기 본인의 갤럭시s의 경우 사실 렉이 거의 없다.
물론 가장 IO 딜레이에 영향을 미치는 것은 파일시스템 및 플래시 매체이긴 하지만, 그다음으로 보자면 IO 스케쥴러로 생각된다.
리눅스에서 선택할 수 있는 IO 스케쥴러는 다음의 4가지 중에 하나이다.
Noop
Anticipatory
Dedline
CFQ (completly Fair Queuing)
하지만, 갤럭시s 같은 경우 처리량(performance/throuput)에 문제가 있는것은 아니다. 단지, response time이 늦는데 문제가 있다.
RFS 나 moviNAND 자체의 문제도 있지만, IO 스케듈러의 영향도 무시 못할 것이라 생각된다.
아래 링크의 벤치마크 테스트 자료를 보면 deadline 스크쥴러의 IO 딜레이가 가장작다.
http://lwn.net/Articles/113869/
IO 스케듈러의 변경으로는 벤치마크 점수가 차이가 거의 나지 않는다.
이런 류의 벤치마크는 실제 사용상에서 중요한 IO delay대한 측정은 하지 않고, 단지 성능(performance, thouput, speed)에 대한 점수를 내기 때문이다.
그래서, 쿼드런트에서 2000점이 나온다고 하더라도, 한번씩 심각한 IO delay가 발생한다면 체감 성능은 더 않좋을 수 밖에 없다.
(본인이 사용하는 ext3패치는 1000점 정도 밖에 안나오지만 특별한 렉 현상이나 멈춤 현상이 없다.)
순정 커널, 패치 커널은 상관없지만 루팅은 되어 있어야 사용가능하다.
그리고, 아래 방법은 임시적인 방법이다. 아래와 같이 적용하더라도 폰을 껏다 키면 다시 원상태로 돌아온다.
(영구적으로 적용시킬려면 init.rc를 수정해서 커널 이미지를 새로 만들어야 한다.)
$ su
# echo "deadline" > /sys/block/{DEVICE-NAME}/queue/scheduler
stl9 (/system)
stl10 (/dbdata)
stl11 (/cache)
mmcblk0 (/data 및 /sdcard)
mmcblk1 (외장 sd)
... (기타 등등)
(deadline IO 스케듈러의 해제는 그냥 껏다 키면된다.)
# echo "deadline" > /sys/block/mmcblk0/queue/scheduler
이 경우 /data 및 /sdcard가 CFQ가 아니라 deadline방식으로 IO scheduler가 동작한다.
본인의 경우 sd패치를 통해서 외장 sd가 /data로 바뀌어 있다.
그래서, 실험적으로 다음과 같이 변경하였다. (mmcblk1이 됨)
# echo "deadline" > /sys/block/mmcblk1/queue/scheduler
따라서, 실제 체감적으로 성능 향상을 잘 알수 없었지만, 순정 커널 사용자라면 다른 차이점을 느낄수 있을지 모르겠다.
적용완료했구요~! 플라시보효과인지는 모르겟지만.. 빨라진듯 합니다..^^