-

안녕하세요


럭스입니다.


많은 분들이 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를 하시는 걸 추천합니다.



정말로 끝!







  • BlogIcon 엑시노스 2017.10.28 14:34

    흥미로운 걸 알았네요ㅎㅎ 감사합니다ㅎㅎ

    1. BlogIcon XronoCore Luxdefuror 2017.10.28 15:56 신고

      ㅎㅎ 감사합니다~

  • 하핳 2018.03.25 11:44

    저 cpu 가버너 모드가
    ondemand
    userspace
    powersave
    pegasusq
    performance
    요렇게 있고
    스케줄러는
    cfg
    noop
    deadline
    이렇게 있습니다 1600mhz 맞출껀데 젤 빠르게 할라면 어떻게 해야하죠? performance는 좀 쓰다보니까 클럭이 1600mhz에서 800mhz으로 계속 내려가길레 안쓸려고요.. 아무튼 알려주시면 감사하겠습니다..^^

    1. 하핳 2018.03.25 11:48

      추가: LMK (low memory killer) 는 어떻게 맞춰야 좋을까요? 저는 적극적이게 하면 조금 버벅거리던데..

    2. BlogIcon XronoCore Luxdefuror 2018.03.25 11:55 신고

      우선 CPU 가버너와 I/O 스케쥴러는 성능만을 바라보고 가면 그리 효율이 좋지 않습니다. 필요한 양만큼만 끌어서 쓰는게 맞다고 생각합니다.

      예를 들자면 어떤 작업을 하는데 있어 필요한 CPU 클럭은 100Mhz 정도면 충분한데, 1000Mhz 만큼 끌어다 쓸 이유는 없는거죠. 배터리 소모 부분에서도 상당한 영향을 끼칩니다.

      따라서 저는 성능과 여러요소를 다 잡기 위해 pegasusq를 추천드립니다. ondemand도 괜찮습니다.

      스케쥴러는 noop를 추천드립니다.

      LMK는 사용하지 않아서 설명드리기가 힘들지만, 앱을 끄려는 용도라면 저는 개인적으로 새로운 앱으로 끄는것 보다메뉴키를 눌러서 스와이프로 앱을 직접 끄시는게 더 낫다고 생각합니다.

    3. 하핳 2018.03.25 12:18

      아이고.. 답글 감사합니다

  • ㄱㄱ 2018.12.15 19:12

    저는 가버너가
    interactive
    conservative
    ondemand
    userspace
    powersave
    perfomance
    이렇게 있는데 게임을 위해서 최대한의 성능을 끌어내려면 퍼포먼스가 좋겠지요?
    io스케쥴러는
    noop
    deadline
    row
    cfq
    test-iosched
    중 noop으로 설정해두었습니다!

    1. ㄱㄱ 2018.12.16 11:34

      아 그리고 자꾸 클럭이 최대클럭인 2265로 설정해도 최대 1574에서 제한되어 바뀌지를 않네요.. 기종은 S4입니다.
      Thermal에서는
      코어 제어
      VDD 제한
      온도 제한 (SoC 온도 제한)
      이 있길래 코어제어만 켜둔 상태에요!

다른 카테고리의 글 목록

Android 카테고리의 포스트를 톺아봅니다
<-- Blog Ad-Block Banning System -->
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]