PHP memory_limit là dung lượng bộ nhớ máy chủ tối đa mà mỗi tập lệnh PHP được phép sử dụng
Theo tài liệu PHP
“Điều này đặt lượng bộ nhớ tối đa theo byte mà tập lệnh được phép phân bổ. Điều này giúp ngăn các tập lệnh được viết kém chiếm hết bộ nhớ khả dụng trên máy chủ. ”
Giá trị mặc định là 128MB
. Thông thường, điều này được nâng lên tùy thuộc vào dung lượng bộ nhớ cần thiết cho ứng dụng web
Khi tập lệnh PHP vượt quá giới hạn, bạn sẽ gặp lỗi tương tự như ví dụ sau
Fatal error: Allowed memory size of x bytes exhausted [tried to allocate x bytes] in /example/php/script
PHP Fatal error: Out of memory [allocated x] [tried to allocate x bytes] in /example/php/script
Bạn có thể tăng memory_limit bằng cách chỉnh sửa php. tập tin ini. Bạn nên tìm một dòng bắt đầu bằng memory_limit
memory_limit = 256M
Xin lưu ý rằng máy chủ có giới hạn bộ nhớ vật lý. Bạn nên tối ưu hóa mã của mình nếu tham số memory_limit đã được đặt quá cao
©2020 Rackspace US, Inc
Trừ khi có ghi chú khác, nội dung trên trang web này được cấp phép theo Creative Commons Attribution-NonCommercial-NoDerivs 3. 0 Giấy phép chưa chuyển đổi
PHP memory_limit
giống như giới hạn tốc độ đường cao tốc cho mỗi phương tiện. Và đường cao tốc có thể có vô số làn đường [quy trình song song] và vô số ô tô. Giới hạn bộ nhớ PHP là dung lượng bộ nhớ tối đa mà một quy trình PHP được phép sử dụng. Một quy trình PHP thường có nghĩa là một lần xem trang cụ thể.
Giới hạn bộ nhớ không giống như RAM
Mặc dù RAM là tổng bộ nhớ khả dụng, nhưng giới hạn bộ nhớ dành cho mỗi quy trình PHP. Điều đó có nghĩa là trang web của bạn có thể tiêu thụ điện. g 10 GB RAM, với giới hạn bộ nhớ là 256 MB. Chúng tôi không giới hạn dung lượng RAM bạn có thể sử dụng, chỉ giới hạn bộ nhớ
Cách làm việc với giới hạn bộ nhớ
Mặc dù có vẻ như là một giải pháp tốt để tăng tối đa giới hạn bộ nhớ, nhưng đó không phải là một quyết định sáng suốt. Bộ nhớ là một trong những thứ dễ bị lạm dụng nhất, do lỗi, mã viết kém, v.v. Bạn có thể dễ dàng, với một vài dòng PHP được viết kém, tôi. vòng lặp không bao giờ kết thúc, hãy sử dụng nhiều gigabyte bộ nhớ cho mỗi lần xem trang. Giả sử bạn sử dụng 1 GB bộ nhớ cho mỗi lần xem trang, điều đó có nghĩa là 1 GB cho mỗi khách truy cập vào trang web của bạn. Thêm vài trăm khách truy cập vào trang web của bạn và bạn sẽ tiêu tốn hàng trăm gigabyte bộ nhớ
Đó là lý do tại sao bạn phải luôn đặt giới hạn bộ nhớ ở mức thấp nhất có thể, vì cài đặt này tích cực giúp bạn mở rộng quy mô. Có giới hạn bộ nhớ càng thấp càng tốt cũng sẽ đảm bảo rằng nếu bạn gặp lỗi trong hệ thống, nó sẽ không ảnh hưởng đến khả năng mở rộng trang web của bạn nhiều như khi bạn tối đa hóa giới hạn bộ nhớ
Giới hạn bộ nhớ PHP tối đa trên Servebolt
Trang web của bạn sẽ có giới hạn tối đa là 1024 MB [1 GB] khi được truy cập qua máy chủ web qua http hoặc https và khi bạn đạt đến giới hạn đó, đã đến lúc bắt đầu làm việc trên ứng dụng của bạn để khắc phục sự cố không thể mở rộng với ứng dụng đó
Thông qua Dòng lệnh [CLI], bạn có thể sử dụng Giới hạn bộ nhớ PHP là 2560 MB. Tuy nhiên, tùy thuộc vào trang web và mã của bạn, giới hạn này có thể được hạ xuống. Giới hạn bộ nhớ PHP được giới hạn tùy thuộc vào Gói Bolt của bạn. Để xem có bao nhiêu MB CLI được phép chạy trên trang web của bạn, hãy chạy cái này qua SSH
php -i | grep "memory_limit"
Điều gì xảy ra khi tôi vượt quá Giới hạn bộ nhớ PHP?
Khi yêu cầu trang qua http hoặc https vượt quá Giới hạn bộ nhớ PHP, người dùng có thể sẽ gặp phải màn hình trắng chết chóc hoặc nhận được thông báo 500 Internal Server Error. Những lỗi như vậy được ghi vào nhật ký lỗi PHP của bạn và thông báo sẽ có nội dung như
Fatal error: Allowed memory size of 134217728 bytes exhausted [tried to allocate 44 bytes] in [filename]
Số byte có thể được chuyển đổi thành MB bằng cách chia hai lần cho 1024. Ví dụ này chuyển thành giới hạn bộ nhớ là 128MB
Khi điều này xảy ra, bạn có hai lựa chọn. Bạn có thể tăng giới hạn bộ nhớ PHP để cho phép sử dụng bộ nhớ cao hơn hoặc tối ưu hóa ứng dụng của bạn [ví dụ: WordPress] để sử dụng ít bộ nhớ hơn
Một điều khá phổ biến là nó không giúp tăng giới hạn bộ nhớ và PHP sẽ sử dụng hết giới hạn mà vẫn không thành công. Nếu đúng như vậy, bạn có lỗi trong ứng dụng làm cạn kiệt bộ nhớ
Chỉ cạn kiệt bộ nhớ đối với một số trang nhất định
Hết bộ nhớ PHP thường xảy ra theo yêu cầu. Điều đó có nghĩa là nó thường không áp dụng cho tất cả các trang trên trang web của bạn. Ví dụ: bạn có thể thấy rằng một trang quản trị duy nhất đang tạo ra lỗi này hoặc một trang danh mục lớn bị lỗi trên trang web Thương mại điện tử của bạn. Nếu đó là trường hợp và các trang khác hoạt động bình thường, bạn thường có thể chắc chắn rằng đó là mã liên quan đến việc xây dựng trang cụ thể đó cần tối ưu hóa
Giới hạn bộ nhớ PHP liên quan đến hiệu suất như thế nào?
Tăng giảm PHP Memory Limit không ảnh hưởng đến tốc độ website. Nó chỉ xác định liệu quy trình PHP có hoàn thành thành công hay không và gửi phản hồi cho khách truy cập. Giới hạn bộ nhớ PHP có ảnh hưởng đến khả năng mở rộng, vì dung lượng RAM khả dụng luôn là một tài nguyên hạn chế
Hãy cho chúng tôi thông tin phản hồi của bạn về bài viết này
Bằng cách cung cấp cho chúng tôi thông tin phản hồi, bạn có thể giúp chúng tôi cung cấp nội dung tốt hơn về chủ đề này trong tương lai. Điều này đã giúp bạn?
Vâng, điều này đã giúp
Không, điều này không giúp được gì
Servebolt đã ra mắt Tên miền tăng tốc
Tên miền tăng tốc là một dịch vụ giúp cải thiện và tối ưu hóa đáng kể trang web của bạn trên bốn lĩnh vực này. Hiệu suất, Khả năng mở rộng, Bảo mật và lượng khí thải Carbon của trang web của bạn