Linux はスワップ領域全体を使用し、十分な RAM があれば応答しません。

Linux はスワップ領域全体を使用し、十分な RAM があれば応答しません。

最近奇妙な問題が発生しました。

時には(意図的に再現できません)、十分なRAMがあるにもかかわらず、システムはすべてのスワップスペースを使用します。これが発生すると、システムは数分間応答しなくなり、OOMキラーはあまり役に立たない「ランダム」プロセスを終了するか、Xサーバーをシャットダウンします。 「ランダム」プロセスを終了すると、システムは応答しません(まだスワップスペースはありませんが、空きRAMが多い)。 Xを終了すると、スワップ領域が解放され、システムが再び応答します。

free発生時の出力:

$ free -htl
              total        used        free      shared  buff/cache   available
Mem:           7.6G        1.4G         60M        5.7G        6.1G        257M
Low:           7.6G        7.5G         60M
High:            0B          0B          0B
Swap:          3.9G        3.9G          0B
Total:          11G        5.4G         60M

名前-a:

Linux fedora 4.4.7-300.fc23.x86_64 #1 SMP Wed Apr 13 02:52:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

交換性:

cat /proc/sys/vm/swappiness 
5

dmesgの関連セクション:http://pastebin.com/0P0TLfsC

一時ファイルシステム:

$ df -h -t tmpfs
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.8G  1.5M  3.8G   1% /dev/shm
tmpfs           3.8G  1.7M  3.8G   1% /run
tmpfs           3.8G     0  3.8G   0% /sys/fs/cgroup
tmpfs           3.8G  452K  3.8G   1% /tmp
tmpfs           776M   16K  776M   1% /run/user/42
tmpfs           776M   32K  776M   1% /run/user/1000

メモリ情報: http://pastebin.com/CRmitCiJ

トップ -o SHR -n 1
ミッション:合計231個、ランニング1個、睡眠230個、停止0個、ゾンビ0個
%Cpu(s): 8.5 us, 3.0 sy, 0.3 ni, 86.9 id, 1.3 wa, 0.0 hi, 0.0 si, 0.0 st
KiBメモリ:合計7943020個、無料485368個、使用済み971096個、バフ/キャッシュ6486556個
交換されたKiB:合計4095996個、無料1698992個、使用された2397004個。 989768 利用可能なメモリ

  PID ユーザー PR NI VIRT RES SHR S %CPU %MEM TIME+ コマンド                                             
 2066 mkamlei+ 20 0 8342764 163908 145208 S 0.0 2.1 0:59.62 Xorg                                                
 2306 mkamlei+ 20 0 1892816 138536 27168 S 0.0 1.7 1:25.47 ノームシェル                                         
 3118 mkamlei+ 20 0 596392 21084 13152 S 0.0 0.3 0:04.86 GNOME端子 -                                     
 1646 gdm 20 0 1502632 60324 12976 S 0.0 0.8 0:01.91 GNOME シェル                                         
 2269 mkamlei+ 20 0 1322592 22440 8124 S 0.0 0.3 0:00.87 GNOME設定-                                     
  486 ルート 20 0 47048 8352 7656 S 0.0 0.1 0:00.80 システムログ                                     
 2277メカムレ+ 9 -11 570512 10080 6644 S 0.0 0.1 0:15.33                                          
 2581 mkamlei+ 20 0 525424 19272 5796 S 0.0 0.2 0:00.37 赤い色 gtk                                        
 1036 ルート 20 0 619016 9204 5408 S 0.0 0.1 0:01.70 ネットワーク管理者                                      
 1599 gdm 20 0 1035672 11820 5120 S 0.0 0.1 0:00.28 gnome-setup-                                     
 2386 mkamlei+ 20 0 850856 24948 4944 S 0.0 0.3 0:05.84 ゴアデーモン                                          
 2597 mkamlei+ 20 0 1138200 13104 4596 S 0.0 0.2 0:00.28 進化警報                                     
 2369 mkamlei+ 20 0 1133908 16472 4560 S 0.0 0.2 0:00.49 進化源                                     
 2529 mkamlei+ 20 0 780088 54080 4380 S 0.0 0.7 0:01.14 GNOMEソフトウェア                                      
 2821 mkamlei+ 20 0 1357820 44320 4308 S 0.0 0.6 0:00.23 進化力                                     
 2588 mkamlei+ 20 0 1671848 55744 4300 S 0.0 0.7 0:00.49 進化力                                     
 2525 mkamlei+ 20 0 613512 8928 4188 S 0.0 0.1 0:00.19 abrt アプレット                                         

IPC:

[mkamleithner@fedora~]$ipcs -m -t

------共有メモリ接続/分離/変更時間-------
shmid所有者の追加分離が変更されました             
294912 mkamleithn 4月30日 20:29:16 未設定 4月30日 20:29:16     
393217 mkamleithn 4月30日 20:29:19 4月30日 20:29:19 4月30日 20:29:17     
491522 mkamleithn 4月30日 20:42:21 4月30日 20:42:21 4月30日 20:29:18     
524291 mkamleithn 4月30日、20:38:10 4月30日、20:38:10 4月30日、20:29:18     
786436 mkamleithn 4月30日 20:38:12 未設定 4月30日 20:38:12     

[mkamleithner@fedora~]$ipcs

------ メッセージキュー---------
主なmsqid所有者権限はバイトメッセージを使用しました。    

------共有メモリセグメント---------
キー shmid 所有者権限バイト nattch ステータス      
0x00000000 294912 mkamleithn 600 524288 2ターゲット         
0x00000000 393217 mkamleithn 600 2576 2 目的地         
0x00000000 491522 mkamleithn 600 4194304 2ターゲット         
0x00000000 524291 mkamleithn 600 524288目的地2         
0x00000000 786436 mkamleithn 600 4194304 2ターゲット         

------セマフォ配列--------
主要な semid 所有者権限 nsems     

[mkamleithner@fedora~]$ipcs -m -t

------共有メモリ接続/分離/変更時間-------
shmid所有者の追加分離が変更されました             
294912 mkamleithn 4月30日 20:29:16 未設定 4月30日 20:29:16     
393217 mkamleithn 4月30日 20:29:19 4月30日 20:29:19 4月30日 20:29:17     
491522 mkamleithn 4月30日 20:42:21 4月30日 20:42:21 4月30日 20:29:18     
524291 mkamleithn 4月30日、20:38:10 4月30日、20:38:10 4月30日、20:29:18     
786436 mkamleithn 4月30日 20:38:12 未設定 4月30日 20:38:12     

[mkamleithner@fedora~]$ sudo grep 786436 /proc/*/maps
/proc/2084/maps:7ff4a56cc000-7ff4a5acc000 rw-s 00000000 00:05 786436 /SYSV00000000 (削除済み)
/proc/3984/maps:7f4574d00000-7f4575100000 rw-s 00000000 00:05 786436 /SYSV00000000 (削除済み)
[mkamleithner@fedora~]$ sudo grep 524291 /proc/*/maps
/proc/2084/maps:7ff4a4593000-7ff4a4613000 rw-s 00000000 00:05 524291 /SYSV00000000 (削除済み)
/proc/2321/maps:7fa9b8a67000-7fa9b8ae7000 rw-s 00000000 00:05 524291 /SYSV00000000 (削除済み)
[mkamleithner@fedora~]$ sudo grep 491522 /proc/*/maps
/proc/2084/maps:7ff4a4ad3000-7ff4a4ed3000 rw-s 00000000 00:05 491522 /SYSV00000000 (削除済み)
/proc/2816/maps:7f2763ba1000-7f2763fa1000 rw-s 00000000 00:05 491522 /SYSV00000000 (削除済み)
[mkamleithner@fedora~]$ sudo grep 393217 /proc/*/maps
/proc/2084/maps:7ff4b1a60000-7ff4b1a61000 rw-s 00000000 00:05 393217 /SYSV00000000 (削除済み)
/proc/2631/maps:7fb89be79000-7fb89be7a000 rw-s 00000000 00:05 393217 /SYSV00000000 (削除済み)
[mkamleithner@fedora~]$ sudo grep 294912 /proc/*/maps
/proc/2084/maps:7ff4a5510000-7ff4a5590000 rw-s 00000000 00:05 294912 /SYSV00000000 (削除済み)
/proc/2582/maps:7f7902dd3000-7f7902e53000 rw-s 00000000 00:05 294912 /SYSV00000000 (削除済み)

プロセス名を入手してください。

[mkamleithner@fedora ~]$ ps aux |クエリ 2084
mkamlei+ 2084 5.1 2.0 8149580 159272 tty2 Sl+ 20:29 1:10 /usr/libexec/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthoritynolist 3
mkamlei+ 5261 0.0 0.0 118476 2208ポイント/0 S+ 20:52 0:00 grep --color=auto 2084
[mkamleithner@fedora〜]$ ps aux grep 3984 |
mkamlei+ 3984 11.4 3.6 1355100 293240 tty2 Sl+ 20:38 1:38 /usr/lib64/firefox/firefox
mkamlei+ 5297 0.0 0.0 118472 2232ポイント/0 S+ 20:52 0:00 grep --color=auto 3984

結果を投稿する必要がある他のshmidはありますか?出力を解釈する方法がわかりません。

この問題をどのように解決できますか?

編集:「ファイルを作成してください」ゲームを開始すると、常にしばらくしてこの問題が発生しているようです。しかし、ゲームが始まっていないとき、このようなことが時々起こります。

Edit2:Xの問題のようです。 Waylandではこれは起こりません。それはおそらく、xorg.confのカスタム設定のためです。

最終編集:同じ問題が発生する人のために:私はDRI 2を使用しています。 DRI 3に切り替えると、問題が解決する可能性があります。私のxorg.confの関連部分は次のとおりです。

「デバイス」セクション
    識別子「インテルグラフィックス」
    ドライバー「インテル」
    オプション "AccelMethod" "sna"#
    オプション「バックライト」「intel_backlight」
    バスID「PCI:0:2:0」
    オプション「DRI」「3」#ここ
    オプション "TearFree" "true"
終わり

私のシステムの関連ファイルは/usr/share/X11/xorg.conf.d/にあります。

ベストアンサー1

tmpfsで使用される共有メモリ(主に)(/ proc / meminfoのShmem、カーネル2.6.32で利用可能、利用できない場合0)>

したがって、マンページの定義はShared予想どおりに役に立ちません。 :(. tmpfsが実際に使用している場合いいえSharedの高い値を反映するには、その値はMAP_SHARED | MAP_ANONYMOUS(またはSystem V共有メモリ)でmmap()したプロセスを表す必要があります。

8Gシステムの6G共有メモリはまだたくさん。真剣に、少なくともデスクトップでは望ましくありません。

不思議なことに「バフ/キャッシュ」にも役立つようです。しかし、私はPythonで簡単なテストをしてみましたが、これがうまくいく方法です。

共有メモリが最も多いプロセスを表示するには、を使用しますtop -o SHR -n 1

システムV共有メモリ

最後に、System V共有メモリセグメントを使用する恐ろしいレガシーソフトウェアがある可能性があります。もし彼らが得るなら方法を提供、彼らは表示されませんtop:(。

を使用して一覧表示できますipcs -m -t。最近作成されたものがまだ使用されていることを願っています。たとえば、shmid 番号を取得します。

$ ipcs -m -t

------ Shared Memory Attach/Detach/Change Times --------
shmid      owner      attached             detached             changed             
3538944    alan       Apr 30 20:35:15      Apr 30 20:35:15      Apr 30 16:07:41     
3145729    alan       Apr 30 20:35:15      Apr 30 20:35:15      Apr 30 15:04:09     
4587522    alan       Apr 30 20:37:38      Not set              Apr 30 20:37:38     

# sudo grep 4587522 /proc/*/maps

->その後、/ procパスに表示される数字はSHMを使用するプロセスのpidです。 (したがって、psの出力をgrepしてpid番号を見つけることができます.)

明らかな矛盾

  1. Xorgには8Gマッピングがあります。専用グラフィックカードRAMがなくても同じです。住民数は1億5千万人に過ぎません。スワップスペースが不足して残りを交換するのとは異なります。

  2. 示されたSHMセグメントは、両方のipcsプロセスに接続されています。したがって、それらのどれも流出しておらず、すべてSHR列top(偶数)に表示する必要があります。使用されるページ数がメモリセグメントのサイズより少なくてもかまいません。これは、使用されていないページがあるという意味にすぎません。しかし、free私たちが占める必要がある6GBの割り当てられた共有メモリがありますが、見つからないとしましょう。

おすすめ記事