IO 스케쥴러 변경에 대해 다들 관심이 많은것 같아서 간단히 사용할수 있도록 어플리케이션을 만들어 봤습니다.

출처)

http://blog.naver.com/dowkim10/120120221075

---------------------------------------------------------------------------


IO 스케쥴러의 변경에 대한 기술적 내용과 전반사항은 이미 이전글에 언급하였다.


http://blog.naver.com/dowkim10/120119483848


IO 스케쥴러의 변경은 일반적인 패치류와 같은 성격의 내용이 아니라, 시스템이 가지는 수천가지의 설정중에서 하나를 변경한 것
뿐이다.
따라서, 이로 인해 시스템의 성능이나 IO가 빨라지는것이 아니다. 단지, IO 에 대한 우선순위및 밸런싱을 조절한 것
뿐이다.
이로 인해 특정 환경이나 어플이 빨라질수도 있고, 도리어 느리게 느껴 질수도 있다.
본인이 사용하는 폰의 상태
(어플리케이션, 커널 패치등)에 따라 다소 느낌이 다를 수 있으니 여기서 제공하는 프로그램을 통하여 잠시 사용해 보는것도 도움이 될듯
하다.



어플리케이션의 특징
- 현재로서는 갤럭시 s에 대해서만 적용을 하였는데, 실상은 모든 안드로이드 폰에
적용이 가능한 내용이다.
- 시스템 변수를 변경하는 것이라서 루팅된 폰에서만 가능하다 (busybox는 없어도 상관이 없다)
- 순정
사용자나 기타 패치커널 (부두,테그라크.. 등등)의 사용여부와 상관이 없다.
(본인은 부두, 원펀치, 테그라크가 아직 먼지도 모른다.
개인적으로는 궁금한데 기술적으로 설명되어 있는데는 없는것 같다.)
- 이클레어 사용자도 사용이 가능할 것으로 보인다. (minimum
API를 eclair로 했기때문에 가능할듯)



설치 및 사용법
첨부 어플리케이션을 다운로드 받아 설치한다.


어플리케이션 실행후 다음의 버튼을 통하여 조작가능하다.
- 현재 상태보기
- IO sheduler 변경
-
초기 상태 복원


IOsched-0.2.png


개선 사항
1. 현재는 갤럭시s에 대해서만 했는데 갤럭시S,U,K는 시스템 정보만 알면 적용하는
것은 쉬우므로 다음버전에는 포함을 시킬까 생각중이다.
(기타 다른 안드로이드폰도 할수는 있지만, 굳이 그럴필요성은
못느낀다.)
2. startup 어플리케이션으로 등록해서 초기에 한번 유저가 설정한 옵션으로 실행되게 하는것이 필요할듯,

서비스나 메모리 상주가 아니라 초기 한번만 수행하면 되므로, 특별히 시스템의 자원이나 리소를 차지 하지 않는다.
3. 마켓의 등록이나
인터페이스등의 기능을 좀더 추가하면 좋겠지만, 본인은 어플리케이션 프로그래머도 아니고, 별로 관심도 없어서 버전업에 문제가 있을지도.

(사실 이 프로그램은 워낙 간단한 프로그램이라 3-4시간 들여 대충 만든것이다. 나중에 안드로이드 전문 프로그래머 만나면 다 넘겨줘야
겠다.)



기술적 검토사항
- 각종 패치커널(부두, 원펀치,테그라크 등등)의 사용자도 사용할 수 있는가는
속단할 수는 없지만 될 것이라고 본다.
왜냐하면, 현재 IO 스크쥴러의 적용을 물리적 플래시 장치(stl, mmcblk)로 했기
때문에, 어떤 형태의 sd패치를 했다고 할지라도 갤럭시 s의 물리적 디바이스에는 변경이 없기 때문이다.


- stl vs bml
삼성의 oneNAND드라이버의 특수성 때문에 bml과 stl이 존재하는데 실제 적용은 stl로 하였다.
(사실 bml과 stl은 1:1 관계에 있다)


http://blog.naver.com/dowkim10/120119813742
stl은 일반적인
리눅스에서 FTL(Flash Trnasaction Layer)대신 사용한 것으로 journaling 과 wear-leveling의 기능을
담당하는것으로 추측된다.
삼성 RFS의 경우 fsync나 flush에 대해 아주 느린것으로 알려져 있는데, 결국 최종 단계는 stl이므로
stl로 하는것이 맞지 않는가 생각한다.


- IO sheduler의 추가적인 파라미터 검토
quntum, fifo_expire, low_latency 등의 파라미터 또한
설정값의 변경에 따라, 반응성에 차이를 조금더 줄수도 있는데 시간이 좀더 나면 살펴봐야겠다.


추가사항-1 ( 0.2 버전 업데이트 )

0.1 버전 배포후 특별한 버그나 이상증세를 나타내신분이 없으신것으로 판단되며, 순정 및 다양한 패치(내,외장)커널에서도 특별한 문제를 제기하신분은 없었습니다.

0.2 버전은 내용적으로는 동일하며, 단지 부팅시에 IO scheduler(deadline)을 자동 적용되는 옵션을 추가한 것입니다.


변경내용 (major)

- 부팅시마다 deadline IO scheduler 적용 옵션 추가

- 아이콘 변경

- 제작자명 변경 ( 몇가지 어플들을 더 만들것 같아서 통일성이 필요한듯)


사용법및 주의사항

- 이전버전(0.1)사용자는 기존의 어플을 제거하고 0.2버전을 새로 설치하시기 바랍니다.

- 처음 프로그램을 실행한 후 한번은 스케쥴러를 변경는게 좋을듯.

(루팅용 어플이라 해골(superuser.apk)에서 한번은 기억되어야 하기 때문입니다.)

- 리부팅후 상태보기에서 모두 "deadline"으로 변경되어 있으면 제대로 된 것입니다.


도움주신분

- 테이스터스 초이스 (아이콘 제공, http://hamachoi78.blog.me)

- 이카루스님

- 꽁치님



추가사항-2 (마켓 등록버전, 1.1 버전)
변경사항
- 기능은 동일하며, "about" 버튼을 메뉴쪽으로 이동.

마켓주소 (또는 마켓에서 "io scheduler" 또는 "d.w.kim" 으로 검색)
Extra Form
첨부
IOsched_QR.png  [File Size:1.3KB/Download:40]
IOsched-0.2.png  [File Size:88.4KB/Download:299]
댓글을 남겨야 다운로드가 가능합니다. 감사의 댓글을 달고 오른쪽 확인버튼을 눌러주세요.
다운로드시 일주일에 한개 이상의 게시물 작성이 필요합니다. 지금 자유게시판에 회원님의 하루를 남겨보세요.
추천♡버튼을 잊지 마세요. 추천인과 회원님 모두 포인트가 적립됩니다.
댓글 109
1 2 3
댓글 쓰기 권한이 없습니다.
최신순 목록 검색 쓰기
등록된 글이 없습니다.
1 - 2