0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle CloudのAlways Free マイクロ・インスタンス( VM.Standard.E2.1.Micro)をUbuntuで限界まで利用する

Last updated at Posted at 2024-08-25

0. はじめに

oracle CloudのAlways Freeっていいよね。
どこまで使っても無料だそうで、とても太っ腹なOracleさんです。

しかし、4OCPU、24GBまで使えるVM.Standard.A1.Flexは非常に人気で、既にリソースが枯渇しており、申し込むことができません。

そこで、まだ申込みできる VM.Standard.E2.1.Micro の 1 OCPU(2 CPU)、1 Memory (GB) を使う事になります。

2 CPUは、そこそこという感じですが、メモリーが1GBなのは辛いですね。
なので、できるだけUbuntuの不要なものを止めてメモリーを確保する方法について書いてみたいと思います(といっても、空けられるのは恐らく10 MBぐらい)

1. Ubuntu の イメージを Canonical-Ubuntu-22.04-Minimal-2024.05.31-0にする

まず最初から不要な物が入っていないMinimalのイメージを選択しましょう。

image.png

これで、大体この記事の言いたいことは終わりです。

image.png

これを使うと、used 166MBの最小インスタンスができあがります。

さらにここから乾いたぞうきんを絞ってきます。

1. graphical.targetを止める

Ubuntuを通常インストールするとグラフィカルなUIになりますが、これを止めましょう。
といっても、MinimalではそもそもGNOME Desktopも動いていないですし、Xサーバーなんてどこにもないのであまり意味はありませんが、不要なものがインストールされてしまわないとも限らないので、オフにしておきましょう。

sudo systemctl set-default multi-user.target

2. unattended-upgrades.serviceを止める

unattended-upgrades.serviceは、自動的にパッケージをアップデートしたりしてくれる便利なサービスですが、自分でアップデートすればいいので、止めちゃいましょう。

$ systemctl status unattended-upgrades.service
● unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-08-25 08:04:07 UTC; 1min 33s ago
       Docs: man:unattended-upgrade(8)
   Main PID: 603 (unattended-upgr)
      Tasks: 2 (limit: 1065)
     Memory: 12.8M
        CPU: 324ms
     CGroup: /system.slice/unattended-upgrades.service
             └─603 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal

12.8MB使っています。

sudo systemctl disable --now unattended-upgrades.service 

3. ModemManagerを止める

$ systemctl status ModemManager.service
● ModemManager.service - Modem Manager
     Loaded: loaded (/lib/systemd/system/ModemManager.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-08-25 07:07:19 UTC; 49min ago
   Main PID: 721 (ModemManager)
      Tasks: 3 (limit: 1065)
     Memory: 2.3M
        CPU: 349ms
     CGroup: /system.slice/ModemManager.service
             └─721 /usr/sbin/ModemManager

2.3MB使っています。これ求めましょう。

sudo systemctl disable --now ModemManager.service

4. iscsid.serviceを止める

$ systemctl status iscsid.service
● iscsid.service - iSCSI initiator daemon (iscsid)
     Loaded: loaded (/lib/systemd/system/iscsid.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/iscsid.service.d
             └─restart-policy.conf
     Active: active (running) since Sun 2024-08-25 07:07:17 UTC; 51min ago
TriggeredBy: ● iscsid.socket
       Docs: man:iscsid(8)
   Main PID: 682 (iscsid)
      Tasks: 2 (limit: 1065)
     Memory: 2.9M

2.9MBですね。止めましょう

sudo systemctl disable --now iscsid.service

5. rpcbind.serviceを止める

まあ、いらないですね。
0.9MB使っています

systemctl status rpcbind.service
● rpcbind.service - RPC bind portmap service
     Loaded: loaded (/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-08-25 07:07:02 UTC; 54min ago
TriggeredBy: ● rpcbind.socket
       Docs: man:rpcbind(8)
   Main PID: 437 (rpcbind)
      Tasks: 1 (limit: 1065)
     Memory: 984.0K
sudo systemctl disable --now rpcbind.service

6. 止めた結果

$ systemctl | grep running
  proc-sys-fs-binfmt_misc.automount                                                            loaded active running   Arbitrary Executable File Formats File System Automount Point
  init.scope                                                                                   loaded active running   System and Service Manager
  session-1.scope                                                                              loaded active running   Session 1 of User ubuntu
  dbus.service                                                                                 loaded active running   D-Bus System Message Bus
  getty@tty1.service                                                                           loaded active running   Getty on tty1
  networkd-dispatcher.service                                                                  loaded active running   Dispatcher daemon for systemd-networkd
  polkit.service                                                                               loaded active running   Authorization Manager
  serial-getty@ttyS0.service                                                                   loaded active running   Serial Getty on ttyS0
  snap.oracle-cloud-agent.oracle-cloud-agent-updater.service                                   loaded active running   Service for snap application oracle-cloud-agent.oracle-cloud-agent-updater
  snap.oracle-cloud-agent.oracle-cloud-agent.service                                           loaded active running   Service for snap application oracle-cloud-agent.oracle-cloud-agent
  snapd.service                                                                                loaded active running   Snap Daemon
  ssh.service                                                                                  loaded active running   OpenBSD Secure Shell server
  systemd-journald.service                                                                     loaded active running   Journal Service
  systemd-logind.service                                                                       loaded active running   User Login Management
  systemd-networkd.service                                                                     loaded active running   Network Configuration
  systemd-resolved.service                                                                     loaded active running   Network Name Resolution
  systemd-timesyncd.service                                                                    loaded active running   Network Time Synchronization
  systemd-udevd.service                                                                        loaded active running   Rule-based Manager for Device Events and Files
  user@1001.service                                                                            loaded active running   User Manager for UID 1001

さすがにこれ以上は止められないですね。
snapdも止めたいところですが、最近のUbuntuはいろいろとsnapに頼っているところがあるので止められません。dbusも同じくです。

■各種設定前

$ free -m
               total        used        free      shared  buff/cache   available
Mem:             947         166         225           1         555         615
Swap:              0           0           0

■各種設定後

$ free -m
               total        used        free      shared  buff/cache   available
Mem:             947         121         524           0         301         687
Swap:              0           0           0

Usedが45MBほど減り、Freeは524MBに増えました。

$ cat /proc/meminfo
MemTotal:         970232 kB
MemFree:          522744 kB
MemAvailable:     690660 kB
Buffers:           16664 kB
Cached:           266160 kB
SwapCached:            0 kB
Active:           272852 kB
Inactive:          79060 kB
Active(anon):      70092 kB
Inactive(anon):        0 kB
Active(file):     202760 kB
Inactive(file):    79060 kB

まあまあでしょう。

7. おまけ

freeコマンドを見て分かると思いますが、クラウドのインスタンスは一般的にswapがありません。昔は、swapなんて、役に立たない100害あって1利無しとか思っていましたが、それはDiskスピードが遅かったからで、今はガンガンに早いSSDのお陰で問題なく利用できます。

2GBぐらいのスワップを用意して追加してみましょう。

sudo dd if=/dev/zero of=/swapfile bs=1024 count=2000000
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
/swapfile       swap       swap       defaults       0 0
sudo systemctl daemon-reload
sudo swapon /swapfile
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?