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

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

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

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

1回答

1638閲覧

clamscanで、swap領域に割り当てたメモリ分が使用できない

ratetail

総合スコア32

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2017/09/29 08:27

編集2017/09/29 14:45

###前提・実現したいこと
環境:raspberryPi2B
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie

clamscanで、割り当てたswap領域分の量を使う方法を知りたい。

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

clamscanを実行すると、以下のような「Can't allocate memory ERROR」が出ていたため、ファイルのサイズが1.6GBをなので、それに合わせて、swap領域を増やして行き(Errorが続いたため、増やせばよいのかと増やしていった結果、以下のように3GBまで増やした)スキャンを試したが、変わらずエラーになってしまいます。
そして、実行時のメモリ使用状況を確認したところ、物理メモリはほぼ使い切っているが
swap領域については、用意した3GBについては、440MBまでしか使われていないようで、440MB以降はずっと増加せず、そのままエラーと成ってしまいます。

「clamscan /xxx/ファイル名1」 LibClamAV Warning: fmap: map allocation failed LibClamAV Error: CRITICAL: fmap() failed /xxx/ファイル名1: Can't allocate memory ERROR ----------- SCAN SUMMARY ----------- Known viruses: 6303942 Engine version: 0.99.2 Scanned directories: 0 Scanned files: 0 Infected files: 0 Total errors: 1 Data scanned: 0.00 MB Data read: 1559.19 MB (ratio 0.00:1) Time: 97.175 sec (1 m 37 s) 「less /etc/clamav/clamd.conf」//変更部分のみ抜粋 MaxScanSize 3000M MaxFileSize 3000M 「free -t -s 1」//clamscanのエラー終了する直前のもの抜粋 total used free shared buffers cached Mem: 949576 915956 33620 116 2712 315500 -/+ buffers/cache: 597744 351832 Swap: 2999996 442656 2557340 Total: 3949572 1358612 2590960 「clamscan /xxx/ファイル名2」 /xxx/ファイル名2: OK ----------- SCAN SUMMARY ----------- Known viruses: 6303942 Engine version: 0.99.2 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.00 MB Data read: 1398.96 MB (ratio 0.00:1) Time: 96.415 sec (1 m 36 s) 「free -t -s 1」//clamscanの完了する直前のもの抜粋 total used free shared buffers cached Mem: 949576 914428 35148 116 1944 313988 -/+ buffers/cache: 598496 351080 Swap: 2999996 442668 2557328 Total: 3949572 1357096 2592476
「cat /proc/sys/vm/swappiness」 100  //スワップ優先設定 「clamscan /xxx/ファイル1」 LibClamAV Warning: fmap: map allocation failed LibClamAV Error: CRITICAL: fmap() failed /xxx/ファイル1: Can't allocate memory ERROR ----------- SCAN SUMMARY ----------- Known viruses: 6303959 Engine version: 0.99.2 Scanned directories: 0 Scanned files: 0 Infected files: 0 Total errors: 1 Data scanned: 0.00 MB Data read: 1579.62 MB (ratio 0.00:1) Time: 104.741 sec (1 m 44 s) 「free」//エラー直前のログ total used free shared buffers cached Mem: 949576 913576 36000 180 760 171952 -/+ buffers/cache: 740864 208712 Swap: 2999996 297056 2702940 Total: 3949572 1210632 2738940 「cat /proc/meminfo」//エラー直前のログ MemTotal: 949576 kB MemFree: 35976 kB MemAvailable: 168272 kB Buffers: 760 kB Cached: 171948 kB SwapCached: 2992 kB Active: 437200 kB Inactive: 436540 kB Active(anon): 350816 kB Inactive(anon): 350416 kB Active(file): 86384 kB Inactive(file): 86124 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2999996 kB SwapFree: 2702940 kB Dirty: 252 kB Writeback: 36 kB AnonPages: 699148 kB Mapped: 16712 kB Shmem: 180 kB Slab: 21772 kB SReclaimable: 9688 kB SUnreclaim: 12084 kB KernelStack: 1600 kB PageTables: 4472 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 3474784 kB Committed_AS: 1376568 kB VmallocTotal: 1114112 kB VmallocUsed: 0 kB VmallocChunk: 0 kB CmaTotal: 8192 kB CmaFree: 6448 kB

###試したこと

ファイル種類が同じで、別ファイルの1.4GBまでのファイルは、スキャン完了できています。
その時のメモリ使用量も、上記のエラーした時とほぼ同じ状態で実行完了していました。

また、関係あるかわからないのですが、ファイルサイズが各1.2~1.7GBまでの10個のファイルで試した結果、実行完了、エラーに関わらず、96~103秒の間で終了していました。

スキャン完了、エラーに関わらず、なぜ作成したスワップ領域にはまだ余裕があるのに、それ以上使用しない状態になっているのでしょうか?

どのような情報でも結構ですので、お教えいただければと思います。
よろしくお願い致します。

更新:ログ追加

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

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

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

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

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

guest

回答1

0

Active状態のメモリー使用領域はスワップアウトされないからではないでしょうかね。

参考
http://itpro.nikkeibp.co.jp/article/Keyword/20070601/273353/?ST=spleaf

/proc/meminfoとか見るとfreeより詳細な情報がでますよ。

投稿2017/09/29 12:17

scsi

総合スコア2840

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

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

ratetail

2017/09/29 14:56

回答ありがとうございます。 仰られた内容の状態を確認するため、同様のスキャンテストを行いmeminfoのログも取得、追記させていただきました。 また、今回のスキャンテストを行う前に「cat /proc/sys/vm/swappiness」を「100」としておきました。 /proc/meminfoの情報から Active: 437200 kB Inactive: 436540 kB となっているため、Inactive部分の436MBは、スワップアウトされてもいいように思うのですが これがまだあるにもかかわらず、なぜ割り当てエラーとなってしまうのでしょうか? 現在理解しているInactiveとスワップアウトのイメージは、Inactiveがあれば、そこを経由(開放、割り当ての繰り返し)して、どんどんswap領域に退避させられる、という認識です。 ですので、上記のように、まだInactiveが残っているのに割り当てできないと言うところが分かりませんでした。
scsi

2017/09/29 20:44 編集

CentOS7 で メモリ 1GB のさくらのVPSで 2.2GB のファイルは問題なく scanでました。 参考までに環境を書きます。 kernel: 3.10.0-514.21.1.el7.x86_64 clamav: clamav-0.99.2-1.el7.x86_64 下記コマンドを実行しながらscanしてみましたが、 問題なくswapは少しずつscanが終わるまで使われていることが確認できました。 #!/usr/bin/perl use strict; use Time::HiRes qw/usleep/; my $microseconds = 1000; my $regex = 'Mem|Buffers|Cached|Swap|Active|Inactive' ; while (1) { open F, '<', '/proc/meminfo' ; while(<F>) { if (/^(($regex)\S+)\s+(\d.*)/) { my ($item,$value) = ($1,$3) ; print "$item $value\n" } } close F ; usleep ( $microseconds ); print "\n" ; } # clamscan /var/tmp/test.file /var/tmp/test.file: OK ----------- SCAN SUMMARY ----------- Known viruses: 6303961 Engine version: 0.99.2 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.00 MB Data read: 2290.50 MB (ratio 0.00:1) Time: 15.868 sec (0 m 15 s) OSかアプリケーション、どちらかのバグですかね〜 プロセスを strace すれば何かわかるかもしれませんが、結局は物理メモリを増やすか、どこぞに問い合わせないと治らない問題ではないでしょうか。 ちなみにscanしたテストファイルはどんなファイルですか? 圧縮されたファイルだったりしますか?
ratetail

2017/09/30 13:41

自分の知らない事が原因と考えていたため、他の環境でテストしてませんでした。 自分で以下の環境を構築 VMWare上  CentOS7.3r1611  Kernel 3.10.0-514.el7.x86_64  clamav clamav-0.99.2-8.el7.x86_64  割り当てコア「1」  割り当てメモリ「1GB」  ストレージ「30GB」 上記環境で、clamscanを試したところ、試していただいた結果と同じように、スキャン完了しました。 1.5GB前後のファイル7個を用意し、フォルダ内を対象にした検索をしても、スキャンはすぐ終わりました。 (PCからの1つのコアなため、スペックに違いがありすぎたせいなのか、7個でも10秒かからないという速度でした) やはり、OSかアプリケーションの問題なんでしょうかね・・・ ファイル自体は、mp4形式の動画ファイルです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問