亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何確定并發用戶的內存使用量和限制

如何確定并發用戶的內存使用量和限制

PHP
Helenr 2023-11-03 20:09:25
我需要消除對 php memory_limit 的好奇心memory.php我在我的文件中包含了一個文件index.php下面是我使用的腳本 memory.php,用于獲取頁面的內存使用情況。<?php function formatBytes($bytes, $precision = 2) {?$units = array("b", "kb", "mb", "gb", "tb");?$bytes = max($bytes, 0);?$pow = floor(($bytes ? log($bytes) : 0) / log(1024));??$pow = min($pow, count($units) - 1);??$bytes /= (1 << (10 * $pow));?return round($bytes, $precision) . " " . $units[$pow];?}?print formatBytes(memory_get_peak_usage());?>我的index.php 使用500KB內存。在我的.htaccess文件中我添加了這一行php_value memory_limit 2M我好奇的是我讀到了用戶concurrent在頁面上的操作。我的問題是:例如,如果 5 個用戶同時打開我的 index.php,那么內存使用量合計是 5x500KB=2.5MB 還是每個用戶 500KB 內存,即使 10 個用戶同時打開我的 index.php 也沒關系如果合并所有用戶的內存使用情況,我仍然需要將內存更改.htaccess為更大的內存限制。
查看完整描述

2 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

每個傳入的請求都由您的 Web 服務器(例如 Apache)處理?,F在,根據網絡服務器的配置方式,它會為每個請求創建一個新進程。

php_value內存限制2M

讀取和處理 PHP 腳本的單個進程最多允許消耗 2mb。

PHP memory_limit 是針對每個腳本的,就像高速公路的速度限制是針對每輛車一樣。例如,盡管 PHP 的內存限制可能設置為高至 1GB,但這并不意味著腳本會堆積起來以使用該 1GB。

因此,舉個例子,如果 10 個用戶同時訪問/index.php,您的 Web 服務器將總共使用 10x 500kb (5mb) 內存,但這樣也沒有問題,因為每個用戶之前都允許達到 2mb并拋出錯誤。

  1. 例如,如果 5 個用戶同時打開我的 index.php,那么內存使用量合計是 5x500KB=2.5MB 還是每個用戶 500KB 內存,即使 10 個用戶同時打開我的 index.php 也沒關系

這個問題的措辭有點奇怪,但不,PHP 的內存限制是每個進程/請求,所以你會沒事的。每個人最多可以消耗 2mb 的內存。

  1. 如果合并所有用戶的內存使用情況,我仍然需要將 .htaccess 更改為更大的內存限制。

它沒有合并。

最后,PHP 的默認內存限制(128mb)適合大多數應用程序。我的建議是保留它,除非您有充分的理由更改它。


查看完整回答
反對 回復 2023-11-03
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

PHP手冊的描述是memory_limit這樣的:

這設置允許腳本分配的最大內存量(以字節為單位)。

當這里說“腳本”時,它并不是指磁盤上的特定 URL 或文件,而是指該腳本的特定執行- 最常見的是對 Web 服務器的特定請求。

因此,如果您有多個用戶請求同一頁面,他們每個人都會獲得 2 MB 的“限額”(這對于現代服務器來說是一個非常低的限制?。?/em>

請注意,這并不意味著為每個請求預先分配 2 MB。這意味著,如果 PHP 決定需要更多,它將立即停止處理頁面,給用戶留下一個純白色的頁面,并在日志中顯示錯誤。


查看完整回答
反對 回復 2023-11-03
  • 2 回答
  • 0 關注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號