モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

メモリおよびディスクリソースを調査するために便利なコマンドおよび周辺知識

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/05/26
最終更新最終更新
2017/08/30
記事区分記事区分
一般公開

目次

    MySQLの運用やレプリケーション設定など、実用的なノウハウを共有します。

    メモリ使用量を表示 (free)

    既定ではキロバイト単位で表示されます。オプション "-b", "-k", "-m", "-g" を付与して実行するとそれぞれバイト、キロ、メガ、ギガで表示されます。

    $ free
                 total       used       free     shared    buffers     cached
    Mem:        510824     133932     376892          0      10448      56216
    -/+ buffers/cache:      67268     443556
    Swap:      1048568          0    1048568
    

    Mem (物理メモリ)

    • total = used + free
    • usedの内訳の一部として buffers, cached が存在 (OSがディスクアクセス回数を減らすため等に使用)
    • 「-/+ buffers/cache」の行では buffers, cached を used ではなく free に含めた場合の容量を表示

    Swap (仮想メモリ)

    • total = used + free

    コンテキストスイッチ

    コンテキストスイッチという仕組みを用いると、CPUのコアで行っていたある処理の状態を一旦退避させ、別の新しい処理を行えます。OSはPCのコア数を越える処理を同時に行わなければならなくなった場合、コンテキストスイッチを利用して切替えながら、一つのコアに仮想的に複数のプロセス処理を同時に実行させます。コンテキストスイッチが頻繁に発生すると処理性能が落ちるため、並列プログラミングなどでコア数を越えて並列処理を実行させることは非効率ということになります。

    データの読み書きにおける「ブロック」という用語

    ハードディスクなどへのデータの読み書きには最小単位があり「ブロック」とよばれます。ブロックの具体的な容量は環境に依存します。

    ファイルシステム毎の空き容量を表示 (df)

    $ df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           31G  1.7G   27G   6% /
    tmpfs                 250M     0  250M   0% /dev/shm
    /dev/sda1             485M   52M  409M  12% /boot
    

    あるファイルのディスク使用量を表示 (du)

    $ du -h test.txt
    4.0K    test.txt
    

    スワップ領域の内容を実メモリに移動 (swapoff, swapon)

    一時的に何らかの障害によってメモリが不足してスワップが発生してしまったとします。原因となるプロセスを kill するなどして、スワップ領域に格納された内容をすべて格納できる十分な空きが実メモリにできた場合、以下のコマンドでスワップ領域の内容をすべて実メモリに移動できます。

    スワップ領域のためにマウントされているファイルを確認

    $ cat /proc/swaps
    Filename    Type         Size    Used    Priority
    /dev/dm-1   partition    950268  49604   -1
    

    ちなみにこれは /etc/fstab で起動時にマウントされたものです。

    $ grep swap /etc/fstab
    /dev/mapper/VolGroup-lv_swap swap    swap    defaults  0 0
    $ ls -l /dev/mapper/VolGroup-lv_swap
    lrwxrwxrwx. 1 root root 7  4月 28 23:29 2015 /dev/mapper/VolGroup-lv_swap -> ../dm-1
    

    現在のメモリ状況を確認

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:           458        329        129          0         10        228
    -/+ buffers/cache:         90        367  ← 実メモリの空きは367MB (>48MB)
    Swap:          927         48        879  ← 927MBが確保され48MBが使用中
    

    スワップを無効にして内容を実メモリに移動 (しばらくかかります)

    $ sudo swapoff /dev/dm-1
    

    メモリ状況を確認

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:           458        376         82          0         10        229
    -/+ buffers/cache:        135        322  ← freeが367-48で約319MBになった
    Swap:            0          0          0  ← スワップ領域が0MBになった
    

    再びスワップ領域を有効化

    $ sudo swapon /dev/dm-1
    

    メモリ状況を確認

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:           458        376         81          0         10        229
    -/+ buffers/cache:        136        322
    Swap:          927          0        927  ← 927MB確保された。0MB使用中
    
    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    MySQLの運用やレプリケーション設定など、実用的なノウハウを共有します。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事

      • 使い所が難しいマイナーな運用コマンド
        コマンドのエイリアスを登録する (update-alternatives) mybin という名前のコマンドを登録 sudo update-alternatives --install /usr/local/bin/mybin mybin /usr/bin/echo 10 sudo update-alternatives --install /usr/local/bin/mybin mybin /...
        けんちゃんけんちゃん11/1/2022に更新
        いいねアイコン画像0
      • ipコマンドの基本的な使い方
        ネットワーク関連のコマンドはたくさんあります。しかしながら、その一部は ip コマンドに集約できます。 基本形 ("man ip" より抜粋) $ ip OBJECT COMMAND OBJECT: link, neigh, addr, route (等) COMMAND: show, add, delete (等) データリンク層のネットワークデバイス情報 (ifconfigコマンドの代用) M...
        こもれびさんこもれびさん2/8/2017に更新
        いいねアイコン画像0
      • プロセス関連のコマンド
        サムネイル画像-7b5901f600
        プロセスID関連 (ps, pgrep, pkill) 全プロセスを表示するためには $ ps ax とすればよく、その表示を見やすくするためには "u" と "w" を追加して $ ps auxw とすればよいです。表示件数自体は同じです。そのうち特定のコマンドのプロセスIDだけを表示したい場合は $ ps ax | grep 'my_script' | grep -v grep | awk '...
        kenken11/27/2021に更新
        いいねアイコン画像0
      • rpmとyumのチートシート
        サムネイル画像-f69c6665b8
        rpm (RedHat Package Manager または RPM Package Manager) はRedHat系のパッケージ管理ツールで、yum (Yellowdog Updater Modified) は内部的にrpmを実行するメタパッケージ管理ツールです。rpmには柔軟性がありyumには利便性があります。 rpmは "rpmパッケージファイル" があれば何でもインストールできますが、...
        まるたんまるたん2/2/2022に更新
        いいねアイコン画像0
      • 運用時に大活躍する必須コマンド
        ファイル内容を再帰的に検索 (grep) find コマンドはファイル名についてディレクトリを再帰的に検索します。ファイルの内容について指定したディレクトリ以下を再帰的に検索するためには grep に -r オプションを付与します。その際 -n および -i オプションも付与しておくと便利です。未来創発 NRI grep です。 $ grep -nri "pattern" dir -n (--li...
        ねこねこ9/7/2021に更新
        いいねアイコン画像0