linux 内存中的cached过大
两台机器主要用来跑nginx和php,内存分别为8G和4G,一段时间以后free命令的输出结果中的cached数值都会越来越大,如图
自己搜了几圈以后得知,cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 .
Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache
如果 cache 的值很大,说明cache住的文件数很多。
但是仍有两个疑问:
1.用来跑php的这个两个机器的内存使用情况(cached占用)跟php执行请求的数量有些什么关系?比如这两个站,是不是访问数量越大,cached的值就一定越大?
2.执行sync命令,将cached写入磁盘后,对之后的访问有没有什么影响?
本人菜鸟,请大神指点。。。
回复内容:
两台机器主要用来跑nginx和php,内存分别为8G和4G,一段时间以后free命令的输出结果中的cached数值都会越来越大,如图
自己搜了几圈以后得知,cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 .
Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache
如果 cache 的值很大,说明cache住的文件数很多。
但是仍有两个疑问:
1.用来跑php的这个两个机器的内存使用情况(cached占用)跟php执行请求的数量有些什么关系?比如这两个站,是不是访问数量越大,cached的值就一定越大?
2.执行sync命令,将cached写入磁盘后,对之后的访问有没有什么影响?
本人菜鸟,请大神指点。。。
哪里有过大?cached 和 buffers 占据 available 部分中的绝大部分是正常的。你说你的内存,free 着就是什么用处都没有,但你以为那些部分就不需要通电、刷新吗?
cached 通常属于 available 部分(该数据 3.14 内核之后提供,procps-ng 较新版本也显示),也就是可用内存。什么时候程序需要了,什么时候拿去用。暂时不需要?那我从磁盘那个慢到死的家伙里好不容易读出来的数据先留着,指不定用户还要用到呢。
有兴趣可以 echo 3 到那什么文件/proc/sys/vm/drop_caches
清空一下这些部分,然后 ls /usr/lib 试试。然后立即再执行一次,是不是有缓存之后就快多了?
至于 sync 命令。它和 cached 有关,但是不是你所想的那个功能。它的功能是,把脏页写回磁盘,也就是把修改过的数据还没写到磁盘的数据写到磁盘上。因为内核会延迟提交,每次提交多积累一些数据,以提高效率、降低延迟。没有使用的必要,只会让系统卡一下而已。****加粗文字加粗文字
cached占用多也没有关系啊,必要时系统会自动回收文件缓存,然后再分配的。缓存需要写入磁盘的话,文件系统自己会完成的,一般没必要sync吧
可以看一下PHP配置文件中memory_limit=xxx。也许能帮到楼主!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

シミュレーションログインの場合にシミュレーションログイン後に404エラーをリダイレクトするための解決策は、シミュレーションログインにSeleniumを使用すると、いくつかの困難な問題に遭遇することがよくあります。 �...

nginと同様に、APSChedulerタイミングタスクをサービスとして構成する場合、APSChedulerタイミングタスクをMACOSプラットフォームでサービスとして構成します...

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
