I/O Scheduler Patch



<변경사항 이력>



12월 16일 오전 11시 40분 : 복구시 부팅 한번으로 복구되도록 수정


-> 적용 및 복구시, 어플을 모두 닫으시고, 미디어스케팅이 진행 중일 때는 적용하지 마시기 바랍니다. (무한강종의 원인이 될수있습니다)


-> 하기 본문의 <유의사항>은 반드시 숙지해주세요. 문제발생 시 책임은 사용자본인에게 있다고 적어놓았지만 재 마음이 편치 못하네요.



12월 15일 저녁 10시 : 주요영역만 적용하는 패치로 복귀 / 외장 SD카드 장착유무에 따라 자동 적용 (외장 패치를 하는것이 아님)

-> 추가영역 및 모든영역 적용시, 정상적용은 되지만 복구후 문제 발생(강종)


-> 여러가지 방안, 영역들을 적용하여 테스트했지만 결국 문제 발생 (아..여기서 엄청난 양의 if문과 파일들을 작성했음 ㅡㅡ;;; , )


-> 각각 적용방법들에 대한 문제의 원인은 90%이상 규명이 가능하지만, 나머지 10%를 확실히 파악하지 못했으므로, 주요영역만 적용함


-> 주요영역만 적용해도 사실 본 패치의 100%에 가까운 효용성을 확보함


-> 외장 SD카드의 장착 유무에 따라 자동으로 패치가 적용되는 스크립트로 수정함.


-> 혼자 비밀리에 추가적인 부분을을 적용할 계획입니다. 때가 되면야 오픈하겠죠~ ^^


ps1. 사실 시간이 많이 부족해요.... 아시는 분은 아시겠지만, 한두가지이상의 환경이나 방안이 추가되면 스크립트의 if문이나 스크립트 구조를 짜는게 정말 복잡해집니다


ps2. 10% 에러의 문제를 확인하기 위해서는 순정+루팅상태에서 분석해봐야하는데, 저도 회사원인지라 현재 커널이나 기타 각종 패치류를 사용하고 있어서 잡기가 쉽지는 않습니다. 추후에 순정+루팅상태에서 적용하여 문제의 원인을 확인해보겠습니다.



12월 14일 오전 12시 50분 : 주요영역만 적용 / 모든영역 패치부분은 내림


-> 주요영역부분만 적용하는 스크립트를 다시 올렸으니, 모든영역 수정본이 나오기전까지는 본파일인 주요영역만 적용하시기 바랍니다.


-> 모든 영역적용부분 패치는 다시 올릴때까지 적용하지 마시기 바랍니다. 겔러리 여실때 등 이미지를 제대로 불러오지 못합니다.


-> 사실 이부분때문에 모든영역을 적용할까 고민을 했었는데, 예상했던것처럼 이것은 무리가 있군요. 예상되는 곳이 있으므로, 이부분은 제가 시간을 갖고


테스트를 한후 완료되면 모든영역부분의 패치를 다시 올리겠습니다.



12월 14일 저녁 12시 10분 : 모든 영역 적용 / 주요부분 적용 선택



12월 14일 저녁 8시경 : 1차 주요부분적용




이 패치는 스크립트 명령을 통한 패치법입니다.


- 겔럭시S의 각 해당 block들의 I/O스케쥴러 설정값을 변경하여 I/O latency time을 줄여주어 그 성능향상을 기함에 있습니다.


- init.d 지원되는 커널에서만 가능하던 부분을, 부팅시 스크립트를 실행되게하여 한번 적용하면 복구하기전까지는 재부팅을 해도 재적용할 필요없이 해당 패치를 무중단으로 사용할수 있게 하였습니다.


- 유의사항만 잘 읽어보시면 절대 무한부팅되거나 문제발생하지 않습니다.



먼저 이 패치는 "자양"님이 올려주신 정보를 참조하여 작성하였습니다. 자양님 좋은 정보 감사드립니다. 또 더 좋은 정보 부탁드립니다. ^^


아울러, 본 패치를 무단으로 배포하지 말아주시기 바라며, 필요 시 "맛클 | 이카루스" 로 그 출처를 밝혀주시고, 본 사이트의 링크를 통해 사용해주시기 바랍니다. (대단한것은 아니지만, 그래도 그 출처는 분명 맛클입니다)



정보출처<맛클 자양님의 글 원문> : http://matcl.com/s/?mid=freeboard&category=9003&document_srl=653073


<자양님 블로그> : http://blog.naver.com/dowkim10/120119483848


를 참조하였습니다.


아!그리고 EcaDENt 님의 관심도 한몫 거들어주셨습니다.



<적용효과>


- I/O Delay 를 줄여주어 성능 향상


- 보다 부드러움(사용해보신 분들의 말에 의하면 Nilfs2적용했을때처럼 부드럽다고합니다)



<실행시의 유의 사항> - 물론 사전에 "백업"은 필수입니다.


1. 반드시 루팅을 먼저 하시기 바랍니다.


2. 외장패치를 하신분들은 외장패치를 해제하시기 전에는 사용하지 마시기 바랍니다..
외장 패치를 원하시는 분들을 위해, 동시에 적용이 가능하며, 금번 IO Scheduler의 성능향상이 검증되면,
동시적용 스크립트 적용은 금방 가능하므로, 그때 외장패치까지 동시에 적용되는 패치를 올려드리도록 하겠습니다.


3. 새로운 패치적용전에는 반드시 현재 패치를 복원후에 새패치를 적용하는 것이 기본입니다.


본패치적용후 재적용하실때에도 반드시 본패치 해제후 다시 재적용하는 해야 하는 것이고, 외장패치역시 ,본 패치적용 후에 복원하지 않고


외장패치하시면 안됩니다. 반드시 복구하시고 외장패치 적용하시기 바랍니다.


4. 겔스에 busybox가 다운 및 install되어 있어야 합니다. 없으신 분들은 마켙에서 검색하셔서 설치하신후 실행하시어 install 하신후 패치적용해주세요.


5. 부두, 테그라크 등의 패치를 사용하신분들 모두 가능합니다.


6. 사용중이신 모든 어플들을 닫고 적용하시기 바랍니다. 물론 미디어스캐닝도 모두 완료된 이후에 적용하시기 바랍니다.


7. 적용후 문제발생시 그 책임은 분명 본인에게 있습니다. 단, 본 유의사항과, 본문내용을 잘 읽으신분들은 문제발생할 요지가 거의 없습니다.



<패치적용 영역>


1. 주요 영역


mmcblk0 (/data영역과 /sdcard 모두 포함)


mmcblk1 (외장 SD카드 모두 포함)


stl9 (/system영역 포함)


stl10 (dbdata 영역 포함)


stl11( /cache 영역 포함)



2. 모든 영역


상기 4개 block들을 여러분이 테스트한 결과, 좋은 성능향상과 부드러움제공으로 인해 모든영역을 추가하였습니다.


mmcblk0, 1


tfsr0!c ~ 12


bml0!c ~ 12


stl1 ~ stl12



<적용방법>
1. 압축파일을 다운받아 해제



2. icarus.sh 와 icarus폴더를 겔스에 복사


- 겔스와 PC연결시 보이는 루트디렉토리를 의미함
- 아스트로로 확인할 경우 /mnt/sdcard 디렉토리를 의미함
- 루트익스플로러로 확인할 경우 /sdcard 디렉토리를 의미함.



3. 겔스와 PC를 연결하시고 adb를 실행
adb shell 엔터



4. $표시 프롬프트에서 SU를 입력하여 슈퍼유저 권한 획득
$ su (<- 사용중인 커널에 따라 곧바로 # 표시 되고 슈퍼유저 권한부여될수 있음, 그러면 아래 SU를 치지 않아도됩니다)
su (<- 폰 화면에서 superuser 어플에게 Allow 를 해주셨는지 확인, 안하시면 아래 프롬프트 #이 안 나옵니다)



5. # busybox sh /sdcard/icarus.sh
실행



6. PC화면에 아래와같이 나오면 적용합니다.


1 = Apply I/O Scheduler patch
-> 주영역의 I/O Scheduler 적용
-> mmcblk0, mmcblk1, stl9, stl10, stl11



2 = Apply All I/O Scheduler patch ( 모든 영역 패치를 올려드린후 실행하시면 나옵니다, 현재 올려드린 주영역 패치에서는 안나옵니다)
-> 모든 영역의 I/O Scheduler 적용
->mmcblk0~1, tfsr0!c~12, bml0!c~12, stl1~stl12



r1 = Recovery for I/O Scheduler patch
-> 복구




x = exit



screenshoot01.JPG



: "1" 을 누르면 적용


screenshoot02.JPG



부팅시 반드시 안드로보이 또는 해외판 로고등이 나와야 합니다.



7. 적용뮤무 확인방법은
adb 실행
cd /sys/block/stl9/queue
cat scheduler



cd /sys/block/stl10/queue
cat scheduler



cd /sys/block/stl11/queue
cat scheduler



cd /sys/block/mmcblk0/queue
cat scheduler



(외장SD카드 를 작착하신 분)


cd /sys/block/mmcblk1/queue
cat scheduler



을 실행하였을 때, 그 결과값이 하기와같에 [ ] 가 deadline 에 적용되어 나오면 정상적용된 것입니다.



noop anticipatory [deadline] cfq



screenshoot03.JPG




마찬가지로 복구하였을 경우,
noop anticipatory deadline [cfq]



로 나오면 정상적으로 복구가 된것입니다.




**** 적용후 마음에 드시면 추천 눌러주시면 제작한 저도 마음 한켠이 흐믓할 것 같습니다 ^^ ****


문의사항은 맛클사이트를 이용하여 주시기 바랍니다.



감사합니다.



===============================================================


<부연설명>


I/O Scheduler 란?



자양님의 글 을 가져왔습니다. (자양님의 오타까지도 고스란히 가져왔습니다. ^^;;;)


보다 더 많은 내용이 아래 자양님의 글에 있으니 참조하시기 바랍니다.


파일에 대한 억세스(read,write)에 대한 지연과 리눅스에서 사용하는 IO 스케듈러와 밀접한 관련이 있다.
물론 가장 IO 딜레이에 영향을 미치는 것은 파일시스템 및 플래시 매체이긴 하지만, 그다음으로 보자면 IO 스케쥴러로 생각된다.



리눅스에서 선택할 수 있는 IO 스케쥴러는 다음의 4가지 중에 하나이다.


http://www.wlug.org.nz/LinuxIoScheduler
Noop
Anticipatory
Dedline
CFQ (completly Fair Queuing)




Noop은 단순하며 ssd장치의 수명과 연관한다면 좋을수 있으며, Anticipatory는 핀을 사용하는 하드 디스크에 적합할 수 있으나 IO 딜레이가 큰편이며, deadline은 프로세서의 IO요청에 대해 특정 시간내에 처리를 하므로 starvation(굶는것)을 방지하고 response타이을 줄여 유저 인테페이스 반응을 좋게 한다.



일반적인 대부분의 리눅스 시스템(redhat, ubuntu)등은 CFQ를 사용하고 있다. 이는 CFQ가 하드 디스크를 사용하는 일반적인 환경에서 처리량 및 지연에 대해서 좋은 성능을 보여주고 있기 때문이다. (갤럭시s도 CFQ를 사용한다.)



하지만, 갤럭시s 같은 경우 처리량(performance/throuput)에 문제가 있는것은 아니다. 단지, response time이 늦는데 문제가 있다.
RFS 나 moviNAND 자체의 문제도 있지만, IO 스케듈러의 영향도 무시 못할 것이라 생각된다.



response time 또는 IO delay가 가장 작은 것은 스케듈러는 deadline 스케듈러이다. 하지만, 단점은로 IO에 대한 억세스가 더 많으므로 플래시 수명에는 더 안좋으며, 전체적인 성능은 좀 떨어진다.



아래 링크의 벤치마크 테스트 자료를 보면 deadline 스크쥴러의 IO 딜레이가 가장작다.
http://lwn.net/Articles/113869/











































Extra Form
첨부
iCaRuS_IO Scheduler Patch.zip  [File Size:9.7KB/Download:248]
screenshoot01.JPG  [File Size:40.2KB/Download:16]
screenshoot03.JPG  [File Size:19.6KB/Download:16]
screenshoot02.JPG  [File Size:33.6KB/Download:22]
댓글을 남겨야 다운로드가 가능합니다. 감사의 댓글을 달고 오른쪽 확인버튼을 눌러주세요.
다운로드시 일주일에 한개 이상의 게시물 작성이 필요합니다. 지금 자유게시판에 회원님의 하루를 남겨보세요.
추천♡버튼을 잊지 마세요. 추천인과 회원님 모두 포인트가 적립됩니다.
댓글 149
댓글 쓰기 권한이 없습니다.
분류 댓글순 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
lgu 갤s8+ 구글락 글올린 사람입니다 598 file 떳다마린 113 17603 2018.03.25
Universal Adrenaline Shot V14 470 file 맛싸이언 124 39511 2011.09.30
강좌 S7 루팅하기 (컴터 사용) sk, lg, kt 모두 사용 가능 404 file ericKangtheB 67 4878 2017.12.23
패블릿모드 하는법! 강좌 379 file 쿤투 83 30994 2013.03.17
[성능 향상] 02.16 업데이트 Customed Adrenaline Shot 수정본~ 378 file 맛싸이언 70 21546 2012.02.15
강좌 LG V20 부트로더 언락하기(국내 내수용,버라이즌,스프린트,AT&T 모... 300 file xps 94 12003 2017.02.12
[12월 30일추가] I/O Scheduler와 외장마운트 동시적용을 통한 성능향... 289 file 이카루스 47 19025 2010.12.17
[겔S : 1월 11일 V2] 이카루스 패치 N2 - 배포게시판이동 262 file 이카루스 113 16246 2011.01.09
강좌 테그라크(빌드30이후) 업데이트폴더 테마적용방법 232 file 택이아빠 150 71918 2011.06.11
통신사로고 제거 방법 222 file 호정김 48 5849 2017.12.05
강좌 S7 엣지 루팅하기 (컴터 사용) sk, lg, kt 모두 사용 가능 216 file ericKangtheB 46 3139 2017.12.19
Galaxy Tuner 소개 (IO scheduler, LCD 색온도, HW sound) 201 file 자양 114 35633 2011.01.05
강좌 네이버 밴드 멀티 201 file o강주현o1 40 3015 2017.01.22
(스샷)Android 4.0이상의 폰에 소프트키를 넣어보자! 201 file DeathstarS 5 26021 2012.06.06
노트4s xposed 설치성공 197 file 왕년스타 57 2368 2017.01.27
맛클 포인트 얻기에 가장 쉬운 방법............ 196 비빅비 406 8773 2013.04.17
[롤리팝] 커널패치 루팅법 입니다! (킷캣,젤리빈에도 유용!!!) 193 file hsk 448 27573 2014.12.07
강좌 잠금화면 상단바 갤4처럼 투명화하기 191 file MuHyeon 100 17653 2013.08.01
(수정:해제법 추가)테그라크 B10 원낸드 모드를 위한 최적화: 심링크/... 186 file 샤인님 8 15601 2010.12.23
강좌 [갤스] 99.9% 안전하고 간단한 루팅과 버벅이 탈출 182 file choique 29 91792 2010.11.30
램최적화 스크립트 9월 19일 버젼.. 172 file 야미 49 21748 2011.09.20
맛싸이언의 트윅모음~ 160 file 맛싸이언 25 17897 2012.05.07
[6개] 겔럭시 노트 젤리빈 베터리 광탈 현상 최소화 하기..! 152 file HackerChang 143 25412 2013.02.18
[12/16 수정 ]I/O Scheduler를 통한 I/O 성능 향상 패치를 제작하여 올... 149 file 이카루스 30 10146 2010.12.14
강좌 초보님들에게 보내는 첫번째 편지 ^^ 148 쎈빛 31 74163 2010.11.18
볼륨키 꾹눌러서 음악넘기기and상단바 수정하기(투명,색상변경) 143 file 쿤투 80 28193 2013.03.16
강좌 테마스토어 (자주묻는 질문/용량부족 현상 해결방법) 138 file 초콜렛왕 25 79455 2010.11.29
개인적인 테그라크 원낸드 모드 최적화 방법(속도+용량) 137 샤인님 9 21153 2010.12.22
강좌 안드로이드 framework-res.apk 수정방법(테마수정, 시스템어플수정) 136 불멸[갤K] 140 88261 2011.02.11
펌웨어 만큼은 제 nas에서 받으셔도 됩니다. 135 나대지마 60 28299 2011.01.11
1 - 135