ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스에서 CPU 100% 만들기 (CPU를 괴롭하는 여러가지 방법)
    리눅스 2022. 7. 13. 17:14

    CPU 괴롭히기

    자원 관리를 하다보면, CPU나 메모리에 부하를 주어 테스트 해야 하는 순간이 온다.

    예전에는 while을 사용해서 ls 출력 결과를 /dev/null 로 리다이렉트 하는 방법을 사용했는데, 더 나은? 방법을 찾아보았다.

    스택 익스체인지의 리눅스 서버의 CPU 사용량을 높히려면 어떻게 해야하나요? 글이 가장 큰 도움이 되었다.

    1. stress

    가장 기본적인 방법이다. 애초에 이 목적으로 나온 stress 라는 패키지를 설치하고, 이 기능을 이용하는것.

     stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

    심지어 이렇게 하면 메모리까지 간편하게 점유할 수 있다. 다만, 패키지를 설치해야 해야해서 폐쇄망에서 바로 쓰기는 좀 어려운것이 단점

    2. sha1sum

    ???

    해시..? 를 스트레스 테스트에 사용한다는게 무슨말인가 했는데 /dev/zero 를 해시하면 된단다.
    /dev/null 과 같은 녀석인데 가장 큰 차이점은 NULL을 계속 출력 한다는 점

    그렇다. 무한을 해시하는 뻘짓을 시키면 된다.

    sha1sum /dev/zero

    백그라운드 실행(&)을 주고, 필요하면 포 그라운드로 가져와서 인터럽트 (Ctrl + C) 로 종료하면 되는 아주 간단한? 무설치 스트레스 도구가 된다.

    3. openssl

    ????????


    대체 왜 이런 도구가 등장하나 싶지만, openssl 바이너리가 존재하지 않는 시스템은 거의(!) 본적 없으므로 어쩌면 제일 범용성 있을지도 모른다.

    CPUCOUNT=$(grep -ci processor /proc/cpuinfo)
    openssl speed -multi $CPUCOUNT

    openssl speed 는 알고리즘의 속도 테스트를 위한 명령이다.
    위 명령을 2코어를 사용하는 내 시스템에서 실행했을 땐 2 자식으로 포크해서 md2부터 여러 알고리즘의 성능을 확인하는 동작을 한다.

    그런데 이녀석, 코어 수만큼 벤치마크 돌리는데, 인터럽트를 받기 전까지 계속 한다

    역시 뻘짓을 시키면 된다.

     

     

    컴퓨팅 파워를 낭비하는 좋은 방법들은 정말 많은 방법이 있으리라 생각하는데, 개인적인 판단으로는 어떤 시스템이든 openssl speed -multi n 을 통해 암호 벤치마크를 사용하는것이 가장 범용적으로 사용할 수 있을것같다.

Designed by Tistory.