このような異常や失われた画像やその他の問題を組版としてLZ(家主)ノートの印象からオリジナルコンテンツを、あなたは現在のリンクを表示することができますhttps://app.yinxiang.com/shard/s17/nl/19391737/9652651a-7449-4e8eを-b77e-1c60ea8b7d12
ここでは以下の質問について説明します。
1、サーバーは
/キャッシュをバッファリングし、バッファ/キャッシュ(自動&手動)の放出を引き起こすには、2つの方法があります
2は、
本番環境に遭遇するサービス・バッファ/キャッシュは、いくつかのプロセス(ことをトラブルシューティングするためには高すぎるかによって引き起こされる
使用hcache、lsofのの
)
サーバの バッファ/ 2つの方法でキャッシュとリリースバッファ/キャッシュの原因(自動&手動)
1.バッファ/キャッシュとは何ですか?
ファイルの読み取り/書き込み操作は、ので、あなたのサービスプロセスがファイルサービスを改善するために、読み取りおよび書き込み、Linuxカーネルときときとき、バッファ/キャッシュは、実際に、特に存在していたプロセスのために、キャッシュファイルのデータ・サーバ・システムとして使用されています読み込みと書き込み速度は、そのファイルはここに置かれます使用中のキャッシュキャッシュ/バッファ、Linuxサービスの特性に起因するあなたがあなたのファイルがされているかどうかに関係なく検索しますので、ファイルの形態であろうものですスケール読み取りは、機械バッファ/キャッシュは、ネットワークの接続生成サーバまたは、(UDP)ソケットユーザプロトコルまたは、この一部、以下連続的増加よりも常に存在し、及びシステムは、アプリケーションに対応するファイル記述子を作成し、これらのファイル記述子を使用し、これはあなたのマシンであるので、彼らが使用中の再入力バッファ/キャッシュ意志、読み書きするために行いますデータは常にの高いバッファ/キャッシュが存在します理由(すべてのファイルがバッファ/キャッシュを読み書きするために使用されるように、合理的な状況下でメモリ)
図2は、バッファ/キャッシュ機能のいくつかを注意すべきです
サービスの十分なメモリの場合には、ファイルへのファイルの読み書きの効率化を促進するために、Linuxカーネルは、読み書きの効率性を確保するために、バッファ/キャッシュに配置されます、
しかし実際には、アプリケーションがファイルを読み書きするために実行されている場合であるが後、キャッシュは自動的にメモリの一部開放されていない/バッファ
のではなく、バッファとして予約、それが直接再初期化メモリのさまざまな必要性を排除し、次の時間が読みするまで、サービスプロセスを使用し、同じファイルを書き込むことができます操作;アプリケーション・プロセスが頻繁に別のファイルを読み書きするとき、これは、つながる、あなたがサービスのための重要な理由は、空きメモリに直接使用することができることがわかりますので、することは少なくなります。
バッファ/キャッシュです自動的にそれらのこの無限のキャッシュにリリースされないのだろうか?
確かではなく、
サーバは大きなメモリ圧力である場合、メモリは自動的に回収され、それがメインメモリは、バッファ/キャッシュバッファメモリのブロック回収された他の自由空間にサブプロセスとして使用されます;
3、どのように手動で/キャッシュ・リカバリをバッファリングするには?
システムプロセスのメモリ使用の大きな圧力のメモリの回復に加えて、我々はまた、マニュアル、バッファ/キャッシュ・リカバリを実行することができますが、バッファに起因する/キャッシュは、主にファイルを使用して読み書きするために使用されるので、ファイルが回収されたときお使いのシステムのカーネルは、データ・キャッシュやハードディスクで一貫した比較データであり、そうでない場合、あなたがメモリを再利用することができます前に記述する必要がありますので、一般的には、多くの場合、高いIO彪システムに関連付けられています。
必須最初のメモリデータがディスクにフラッシュ
同期;
バッファ・キャッシュのクリーンアップエリア
エコー3> / proc / sys / vm / drop_cachesとキャッシュオブジェクトとスラブディスペンサーページキャッシュをクリアします
エコー1> / proc / sys / vm / drop_cachesと:クリアページキャッシュ。
エコー2> / proc / sys / vm / drop_cachesと:(キャッシュ・ディレクトリ・エントリとiノードキャッシュを含む)スカベンジスラブアロケータオブジェクトを表します。スラブアロケータは、カーネルのメモリ管理メカニズムは、キャッシュデータがページキャッシュに使用されているの多くを達成することです。
以下のように、バッファ/キャッシュに関する記述について、具体的な参照がリンクされてもよいです。
サービスのバッファ/キャッシュに遭遇した制作環境は、いくつかのプロセス(使用のhcache)ことをトラブルシューティングするには高すぎるかによって引き起こされます
1、hcacheのダウンロードアドレス
2、使用のhcache
現在の対応hcacheを使用してダウンロードした後、それが直接の後に対応するビンのchmod認証ファイルに直接、その後、binファイルに対応しています
実行可能ファイルとbinファイル
chmodの755 hcache
usrディレクトリビンに移動hcacheは、それがグローバルコマンドを呼び出すことができ
MV hcacheは/ usr / local / binに/
3、hcacheの共通コマンド
グローバルディスプレイ10は最大のキャッシュファイルであります
hcache --top 10
| 名前| サイズ(バイト)| ページ| キャッシュされました| パーセント|
| ------------------------------------------------- ---------------------------------- + --------------- - + -
| /app/java/jdk1.8.0_92/jre/lib/amd64/server/libjvm.so | 41943040 | 10240 | 8682 | 084.785 |
| libmergedlo.so | 101021431 | 24664 | 5858 | 023.751 |
| dockerd-current | 33398384 | 8154 | 3425 | 042.004 |
| libjvm.so | 16938578 | 4136 | 2429 | 058.728 |
| libjvm.so | 13363349 | 3263 | 1696 | 051.977 |
| docker-containerd-current | 10807760 | 2639 | 1171 | 044.373 |
查看指定进程ID所使用的buffer/cache 的使用情况
hcache -pid 16322
通过上述所获取到的被缓存最大的文件名称后,可以直接通过 lsof file_name 得到当前所开启该文件的所有进程信息;
显示使用 kbase-psrt.jar 的进程信息
[root@xiaoi-3614 ~]# lsof /app/kbase-psrt-wscc/kbase-psrt.jar
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 6048 root mem REG 8,2 59936357 137027366 /app/kbase-psrt-wscc/kbase-psrt.jar
java 6048 root 5r REG 8,2 59936357 137027366 /app/kbase-psrt-wscc/kbase-psrt.jar
java 6048 root 6r REG 8,2 59936357 137027366 /app/kbase-psrt-wscc/kbase-psrt.jar
java 6050 root mem REG 8,2 59936357 137027366 /app/kbase-psrt-wscc/kbase-psrt.jar
java 6050 root 5r REG 8,2 59936357 137027366 /app/kbase-psrt-wscc/kbase-psrt.jar
java 6050 root 6r REG 8,2 59936357 137027366 /app/kbase-psrt-wscc/kbase-psrt.jar
获取当前进程号所打开的所有文件信息
[root@xiaoi-3614 ~]# lsof -p 6048
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 6048 root cwd DIR 8,2 4096 136958862 /app/kbase-psrt-wscc
java 6048 root rtd DIR 8,2 4096 128 /
java 6048 root txt REG 8,2 7734 202909666 /app/java/jdk1.8.0_92/bin/java
java 6048 root mem REG 8,2 88776 203501791 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
java 6048 root mem REG 8,2 256702 135314838 /app/java/jdk1.8.0_92/jre/lib/amd64/libsunec.so
java 6048 root mem REG 8,2 106075056 2663 /usr/lib/locale/locale-archive
java 6048 root mem REG 8,2 93112 135314912 /app/java/jdk1.8.0_92/jre/lib/amd64/libnio.so
更多关于LSOF的使用,可以参考如下链接: