레이블이 M1인 게시물을 표시합니다. 모든 게시물 표시
레이블이 M1인 게시물을 표시합니다. 모든 게시물 표시

2022년 6월 15일 수요일

2022년 4월 통화 및 유동성 동향

 2022년 4월중 통화 및 유동성!​

✔ ​ 2022년 4월 M1(평잔)은 전월대비 0.6% 증가 [전년동월대비 +9.5%]​
✔ M2(평잔)는 전월대비 0.2% 증가 [전년동월대비 +9.4%]​
✔ Lf(평잔)는 전월대비 0.2% 증가 [전년동월대비 +8.0%]​
L(말잔)은 전월말대비 0.5% 증가 [전년동월말대비 +7.4%]​

2022년 4월 25일 월요일

Apple M1 pro , QEMU에서 amd64 / arm64 Linux 실행 비교

## Prerequisites

시작하기 전에 qemu 및 utm을 설치하십시오. 후자는 필요하지 않지만 편리하게 사용할 수 있습니다. Homebrew를 설치했다고 가정합니다.

> $ brew install qemu utm


## VM 설정

utm을 시작하고 "새 VM 만들기"를 원하는 이름으로 지정합니다.

드라이브로 이동하여 최소 10GB 크기의 드라이브를 만드십시오. 그런 다음 디스크를 가져와서 선택한 배포판에서 부팅 가능한 ISO를 추가합니다.


## System 설정

아키텍처: x86_64

시스템: 표준 PC(Q35....)(q35)

메모리: 2048MB 이상(2048MB 사용)

고급 설정:

CPU: qemu64 대 Skylake-Client 대 …

CPU 코어: 4개 이상(저는 8개 사용)

Force Multicore: ✅ (이는 상당한 성능 향상을 제공합니다)


## OS 설치

ISO 이미지에서 부팅한 후 디스크에 OS를 설치합니다. 완료되면 시스템을 중지하고 드라이브에서 ISO를 제거하고 새 VM을 부팅합니다. 가지고 놀 준비가 되었습니다.


## 벤치마크

맥북 M1 pro , 32GB 램, qemu + utm

Guest system: Ubuntu 20.04 (최소 설치)

> sysbench cpu --threads=2 


## Summary

sysbench cpu --threads=2 run

  • native (macOS): ~24 Mio events per second
  • Skylake-Client (default): ~500 events per second 👎
  • qemu64-v1: ~1500 events per second
  • qemu64~1500 events per second 👍
  • qemu64 + ssse3,sse4.1,sse4.2: ~1450 events per second
  • Penryn: ~1500 events per second
  • Penryn + ssse3,sse4.1,sse4.2: ~1400 events per second
  • Haswell: ~500 events per second 👎
  • EPYC: ~1400 events per second
  • kvm64: ~1500 events per second
  • phenom: ~1400 events per second
  • Nehalem: ~1400 events per second
  • Dhyana: ~500 events per second 👎
  • Opteron_G5: — does not work
  • cortex-a72 (default): ~16200 events per second


## With Docker Or Lima

  • docker run -it --rm --platform=linux/amd64 ubuntu : ~550 events per second
  • docker run -it --rm ubuntu : (arm64) ~550 events per second ‼️
  • lima (arm64): ~20200 events per second 🤘
  • lima (x86_64): ~260 events per second
  • lima container (arm64 container in arm64 VM): ~21000 events per second 🤘
  • lima container (x86_64 container in arm64 VM): ~570 events per second


2022년 4월 13일 수요일

Lima + docker server 구성

 

Lima + docker server 구성

Lima를 사용해서 Ubuntu 가상머신을 만듭니다. 그 위에 docker server를 구성합니다. 

설치

brew install lima

Lima VM을 만들기

Lima 설정을 default.yaml 이라고 두고 가상머신을 만듭니다. 

# Example to use Docker instead of containerd & nerdctl
# $ limactl start ./docker.yaml
# $ limactl shell docker docker run -it -v $HOME:$HOME --rm alpine

# To run `docker` on the host (assumes docker-cli is installed):
# $ export DOCKER_HOST=unix://$HOME/docker.sock
# $ docker ...
cpus: 1
memory: "8GiB"
disk: "80GiB"
arch: x86_64

# This example requires Lima v0.7.3 or later
images:
  # Hint: run `limactl prune` to invalidate the "current" cache
  - location: "https://cloud-images.ubuntu.com/impish/current/impish-server-cloudimg-amd64.img"
    arch: "x86_64"
  - location: "https://cloud-images.ubuntu.com/impish/current/impish-server-cloudimg-arm64.img"
    arch: "aarch64"

mounts:
  - location: "~"
    writable: true
  - location: "~/work"
    writable: true
ssh:
  localPort: 60006
  # Load ~/.ssh/*.pub in addition to $LIMA_HOME/_config/user.pub , for allowing DOCKER_HOST=ssh:// .
  # This option is enabled by default.
  # If you have an insecure key under ~/.ssh, do not use this option.
  loadDotSSHPubKeys: true
# containerd is managed by Docker, not by Lima, so the values are set to false here.
containerd:
  system: false
  user: false
provision:
  - mode: system
    script: |
      #!/bin/bash
      set -eux -o pipefail
      command -v docker >/dev/null 2>&1 && exit 0
      export DEBIAN_FRONTEND=noninteractive
      curl -fsSL https://get.docker.com | sh
      # NOTE: you may remove the lines below, if you prefer to use rootful docker, not rootless
      systemctl disable --now docker
      apt-get install -y uidmap dbus-user-session
  - mode: user
    script: |
      #!/bin/bash
      set -eux -o pipefail
      systemctl --user start dbus
      dockerd-rootless-setuptool.sh install
      docker context use rootless
probes:
  - script: |
      #!/bin/bash
      set -eux -o pipefail
      if ! timeout 30s bash -c "until command -v docker >/dev/null 2>&1; do sleep 3; done"; then
        echo >&2 "docker is not installed yet"
        exit 1
      fi
      if ! timeout 30s bash -c "until pgrep rootlesskit; do sleep 3; done"; then
        echo >&2 "rootlesskit (used by rootless docker) is not running"
        exit 1
      fi
    hint: See "/var/log/cloud-init-output.log". in the guest

portForwards:
  - guestSocket: "/run/user/{{.UID}}/docker.sock"
    hostSocket: "{{.Home}}/docker.sock"

중요한 설정 2가지

  • mounts에서 location 부분이 docker volume으로 마운트되는 폴더를 지정하는 곳이고, 읽고/쓰기 설정을 바꿀 수 있습니다. 
  • portForwards 가 docker.sock 으로 호스트 머신에서 노출되는 부분입니다. 
    • Mac 호스트에서 Lima VM에 docker.sock으로 직접 연결되지요. 

Lima 가상머신 만들기 

limactl start ./default.yaml

docker 동작을 확인

lima docker version

macOS에 docker cli를 설치

mac에 docker 명령어를 사용하기 위해서 docker cli를 설치합니다. 

# docker cli
# for Intel Mac
curl -OL https://download.docker.com/mac/static/stable/x86_64/docker-20.10.14.tgz

# for M1 Mac
curl -OL https://download.docker.com/mac/static/stable/aarch64/docker-20.10.14.tgz

mkdir -p $HOME/bin
tar xzvf docker-20.10.11.tgz
mv docker/docker $HOME/bin/.
chmod 755 $HOME/bin/docker

Lima VM의 docker와 Mac의 docker cli를 연결

~/.zprofile 에 소켓을 설정합니다. 

export DOCKER_HOST=unix://$HOME/docker.sock
source $HOME/.zprofile

mac에서 가상머신에 docker를 사용할 수 있습니다. docker version

Docker Server가 동작하는지 확인할 수 있습니다. 

lima uname -m

2022년 4월 7일 목요일

macOS (M1) 환경에서 Docker 를 대치할 만한 것들

 macOS 특히 M1을 사용했을 때 Docker for Mac이 왜 이리도 느릴까 싶습니다. 

x86에서도 Docker for Mac이 느렸지만,  M1과 결합하면 더욱 느립니다. 

개발 환경의 대세는 M1 air와 M1 Pro/Max/Ultra라고 생각합니다. 하지만 악화됩니다. M1 Pro로 애플리케이션의 벤치마크를 해보면 잡으면 4년 전 Intel Macbook Pro(i7) 보다 느리기에 Docker for Mac을 지웠습니다. 


하지만 docker가 없으면 일을 하기 어렵기 때문에 다른 방법을 찾았습니다. 


|도구 이름 |구조 |메리트|단점|Watch|Star|Issues|

도구특징좋은점안좋은점WatchStarIssues
Podman데몬을 필요로 하지 않고 컨테이너를 안전하게 실행할 수 있다. 설치가 쉽다.일부 docker 명령(예: 네트워크)을 지원하지 않는다.17811.2k190
MinikubeHyperkit나VirtualBox에서동작한다. Kubernetes를 사용할 수 있다. Kubernetes는 Docker를 더 이상 사용하지 않으므로 향후 어떻게 할지 모름46822.5k607
Multipass기본적으로 HyperKit, QEMU/KVM 등의 하이퍼바이저를 통해 실행한다. 이기종 환경을 지원한다. (Linux/Mac/Windows)
773.8k327
LimaDocker CLI + Docker REST API를 사용하여 Lima(VM)에서 Docker Engine을 사용Docker for Mac과 가장 비슷한 사용자 환경을 제공설정하는데 참조 자료가 아직은 적다. 485.1k62