質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1836閲覧

【linux】空きメモリ容量がファイルをダウンロードすると減る

araga03

総合スコア13

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/10/29 07:47

前提・実現したいこと

RHEL3の入ったサーバーで複数のソフトを動かそうとしています。
既に動いているソフトがあり、端末も古いためメモリに余裕がありません。

そのため空きメモリがどの程度あるのかをfreeコマンドで気にしつつ、
インストールしています。

ソフトの一つとしてjava1.6をインストールする必要があり、
oracleのサイトからjdk-6u39-linux-i586-rpm.binをダウンロードしました。

発生している問題・エラーメッセージ

jdkの圧縮ファイルをダウンロードする前はfreeコマンドを実行すると
used→3500M
free→500M
でしたが、ダウンロード後は
used→3600M
free→400M
となりました。

ダウンロードしたファイルの容量がちょうど100M程で、
ファイルの容量と同程度にメモリの空き容量が減ってしまいました。

HDDの容量が減るのは分かりますが、インストールして起動している
訳でもないのに、なぜメモリが減るのでしょうか?

一時的にデータを覚えておく。といったことがあるのでしょうか?
現在稼働中のサーバーなので再起動は任意にできません。
再起動でメモリが解放されるとか?はてなマークで一杯です。

サーバーの設定はほぼ初心者で的外れな質問でしたらすみません。
その時にはこの用語を調べたほうがいいなど教えて頂けると助かります。

試したこと

試しにファイルを一度消すと、メモリが500Mに増えました。
HDDの使用量を見ましたが、数十G程空いています。

補足情報(FW/ツールのバージョンなど)

ls -lでjdkファイルを見るとディレクトリエントリのサイズとやらが100Mになっています。
検索するとファイルの名前や、タイムスタンプや、サイズの情報をメモリ上にキャッシング...
となっていますしこちらが原因でしょうか?

なぜ1ファイルでこれらの情報が100Mになっているのか分かりませんが、
他のファイルも見ていると圧縮ファイルが軒並み高いようです。
そういうものなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macof

2018/10/29 08:09

単にダウンロード先がRAMディスクと言うことはないですか?
araga03

2018/10/29 09:01

質問ありがとうございます。急遽RAMディスクについて調べてまいりました。特別設定はしていないので、それは無さそうです。
guest

回答1

0

ベストアンサー

HDDの容量が減るのは分かりますが、インストールして起動している
訳でもないのに、なぜメモリが減るのでしょうか?

linuxではファイルなどのデバイスを読み書きする際、
空きメモリに余裕のある場合はOSが自動的にcacheを確保して、そこへ読み込みます。
これはアプリには見えないところで行われます。
そのため一時的にusedが増えますが、アプリが使えるメモリが減っているわけではありませんので、気にする必要はありません。

再起動でメモリが解放されるとか?

cache上に読まれたデータは、それをアプリが読み込んだ時点で不要になるので
いずれ再利用されたり解放されたりします。
こちらも気にする必要はありません。

試しにファイルを一度消すと、メモリが500Mに増えました。

これは正確に再現手順を示していただかないとよくわかりませんがおそらく
この「増えた」というのをfreeコマンドの出力の1行目を見て確認されているのではないですか?

freeコマンドの1行目「Mem:」に続くused,freeの値は、bufferとcacheを含めた数値に
なっているので、あまり意味がありません。
2行目の「-/+ buffers/cache:」のused,freeの値が本当の使用量と空き容量だと考えてください。

詳しくは「freeコマンド 見方」などで検索してみてください。

ls -lでjdkファイルを見るとディレクトリエントリのサイズとやらが100Mになっています。

ディレクトリ内にファイルをたくさん作ると、ディレクトリのサイズが大きくなり、
後でそのディレクトリからファイルを消してもサイズは元には戻りません。
今、ファイルが1つしかないのに100MBになっているとしたら、以前たくさんファイルがあった名残かもしれませんね。

気持ち悪ければ、新しいディレクトリを作ってそこに移動し、古いディレクトリを消して
ディレクトリを前の名前にリネームすれば直ります。

投稿2018/10/29 08:32

taka-saan

総合スコア665

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

araga03

2018/10/29 09:03 編集

調べてまいりました。なるほど納得しました。 おっしゃる通りmem:のusedとfreeをみていました。 二段目のbuffers/cacheのfreeは大きく空いています。 こちらも今は大きく空いていますが、フルにメモリを使うソフトを 入れれば、ソフトの起動中にキャッシュやbuffersにメモリを割けなくなり、動作が重くなるのでしょうかね... 勉強不足を痛感しました。精進させて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問