안녕하세요


럭스입니다.


많은 분들이 CPU governor와 I/O Scheduler 에 대해 알고 싶다고 이메일이 와서... (댓글 달아주지 ㅠ ㅋ)


포스팅 시작합니다.








기본 단어부터 정리해 볼까요?

CPU : 아시다시피... 중앙처리장치 입니다.


CPU governor : CPU 속도를 조절하는 방법입니다.


I/O Scheduler : 작업의 들어오고 나가는 순서를 정하는 방법입니다. (Input/Output Scheduler)





CPU governor에는 무엇 무엇이 있을까?


1. ondemand

가장 기본적인 가버너지요.


Android 1.5 Donut 부터 서서히 나타나기 시작한 이 가버너는 대부분의 기기에 쓰이고 있지요.


CPU 사용량을 체크해서 필요량 만큼 CPU 클럭 수를 up up 시키는 가버너지만

반응성에 문제가 있어 순간 클럭이 올라가더라도 버벅거리는 경우가 많습니다.



2. interactive

위에 ondemand 를 보안한 가버너.

사용자가 cpu를 사용하면 곧장 최대 클럭으로 올립니다.


그 뒤로 단계적으로 클럭을 내리는데요...


딱 봐도 문제점이 나오죠? 

자주 최대 클럭으로 있게 되어 

배터리를 와구와구 먹어댑니다. ㅠㅠ



3. Conservative

얘도 ondemand 친구!

interactive 와는 다르게 저클럭에서 고클럭으로 단계적으로 올립니다.


그리고 다시 서서히 줄입니다.


확실히 배터리는 절약이 되겠지만...


단순한 어플 하나 돌릴 때 무조건 저클럭에서 고클럭으로 단계적으로 올라가다 보니

버벅거립니다.


반응성이 낮죠.



4. Smartass (번역하면... 똑똑한 녀석... 하하..)

무식한 interactive 와는 다르게

필요량 만큼 클럭을 올리는 가버너 입니다.


대체적으로 낮은 클럭에 유지하기 때문에 배터리 절약도 됩니다.


딱히 단점은 안보입니다. 그러나 더 좋은게 뒤에 있다는 사실!



5. SmartassV2

Smartass를 개량한 녀석입니다.


Smartass보다 반응성 및 성능이 더 뛰어난 가버너입니다.


대부분의 커스텀 롬들이 탑재하고 있는 가버너지요.


역시 이 녀석도 배터리 조절을 잘 합니다.


강추 가버너입니다 



6. Hotplug

저도 보기 힘든 가버너입니다;;


ondemand랑 똑같은데

core의 on/off 기능을 탑재했을 뿐...


여전히 반응성에 문제가 있습니다.



7. Lulzactive

이름 보면... 왠지 Lulz 라는 사람이 만든 것 같다... (필자의 바보 생각)


SmartassV2 와 비슷한 가버너지만

더 많은 클럭 수로 조절합니다. 

단계가 많으니까 배터리 조절에 더 효율적일 수 도 있겠네요? ㅋ



8. Intellidemand

개발자 faux 가 만든 가버너 입니다. 


이론상 가장 뛰어난 가버너 라고 알려져 있습니다만...


설명 진~짜 복잡하답니다. 특정 커널 및 롬에만 탑재되어 있어 보기도 드문 가버너.


써보니까... SmartassV2와 거기서 거기인 것 같습니다만... 배터리 적에서는 좀 더 나을지도..?



9. IntellidemandX

위에 꺼 개량형이라네요....



10. Brazillianwax

SmartassV2와 비슷하지만


클럭 조절 주기가 매우 짧습니다.


배터리를 쭉 쭉 먹겠지요? SmartassV2보다는 좀 더 빠릿하다고 할까...



11. SavagedZen

Zen 커널에서 볼 수 있는 가버너로,

Brazillianwax 를 개량한 가버너 라고 하네요.


배터리 문제를 해결한 가버너 라고 하는데


써본적이 없답니다... ㅋ



12. Lazy

이름과는 다르게 개발자 사이에서 이상한(?) 명성을 가지고 있습니다.


ondemand 친군데

속도 조절 주기를 좀 더 짧게 잡은 거라네요.



13. Pegasusq

ondemand와 hotplug의 짬뽕 버전


들어보지 못한 가버너였는데... 갤럭시3에서 사용되는 가버너라네요.

갤럭시 넥서스 유저들이 Pegasusq + sio scheduler 조합으로 사용을 많이 합니다.



14. performance

정말 무식한 녀석입니다. 

무조~건 최대 클럭


화면 꺼도 최대 클럭


내비두면 손난로 되지요

그리고 어느새 안켜집니다. (배터리 없음 or 정말 간혹가다 발생하지만 메인보드가 녹거나 이상이 발생해서 고장..)


고성능 게임 할때..? 벤치마킹 점수 높게 받으려고 할때? ㅋㅋ;;


비추입니다.



15. powersave

얘도 만만치 않게 무식합니다;; 

무조~건 최저 클럭 ㅋㅋ


굼벵이 됩니다.


다시 CPU governor 바꾸려고 할때도 답답할지도..?


진짜 배터리 절약되겠군요.




 


 


I/O Scheduler 는 무엇무엇이 있을까?


1. cfq

기본 하드디스크에 적합한 스케쥴러로


ondemand 처럼 대표? 기본 스케쥴러...


장점은 없다 ㅋ



2. Noop

오는 작업 오는 순서대로!


A B C 라는 작업이 A -> B -> C 순서로 실행된다!


그럼 그 작업을 처리할 때에도

A -> B -> C 순서로 처리됩니다.



3. Deadline

Noop 과 비슷한 스케쥴러인데요


단지 작업이 들어올 때 그 작업에 시간을 매깁니다. (이름과 같이 데드라인을 매겨요.)


예를 들면

A라는 작업과 B라는 작업이 있을 때

A -> B 순서로 작업이 들어오는데

A 작업에 1분의 데드라인을,

B 작업에 30초의 데드라인을 매기면


B부터 끝장을 보는거죠!


즉, 매겨진 시간 중 짧은 것부터 처리하려 합니다.



4. Sio

Noop이랑 같은 처리 방식인데요


좀 더 적은 부하가 걸립니다.


XDA 에서 추천하는 스케쥴러입니다.



5. V(r)

안투투 등 벤치마킹 어플을 돌릴 때

가장 높은 점수를 얻을 수 있는 스케쥴러입니다만..


불안정하다고 합니다.



끝!



 


 



제가 추천하는 CPU governor 와 I/O Scheduler 조합은

SmartassV2 + sio(or Noop) 입니다.


Smartass 종류가 없으면

interactive를 하시는 걸 추천합니다.



정말로 끝!







  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기