orlandothoeny / memory-limiter
PHP 库,能够读取可用的内存并设置当前空闲内存的限制
1.0.0
2024-08-09 20:50 UTC
Requires
- php: ^8.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.62
- phpstan/phpstan: ^1.11
- phpstan/phpstan-phpunit: ^1.4
- phpunit/phpunit: ^11.3
README
Memory Limiter 是一个 PHP 库,包含读取系统当前可用/空闲内存的功能,并根据可用内存设置 PHP 内存限制。
支持以下环境
- 裸机 Linux
- 虚拟机 Linux
- Kubernetes Linux 容器
- Linux 容器(Docker, Podman 等)
安装
composer require orlandothoeny/memory-limiter
使用
获取当前可用/空闲内存
<?php use MemoryLimiter\AvailableMemoryReader; $availableMemoryReader = AvailableMemoryReader::create(); $availableMemory = $availableMemoryReader->determineAvailableMemoryBytes();
将 PHP 内存限制设置为当前可用/空闲内存
<?php use MemoryLimiter\MemoryLimiter; $memoryLimiter = MemoryLimiter::create(); /* Set memory limit to the currently available memory Will skip setting the memory limit if running inside a Kubernetes container */ $memoryLimiter->setMemoryLimitToCurrentlyAvailableMemory(); // Also set memory limit when running inside a Kubernetes container $memoryLimiter->setMemoryLimitToCurrentlyAvailableMemory(false); // Set memory limit to 50% of the currently available memory $memoryLimiter->setMemoryLimitToCurrentlyAvailableMemory( limitToPercentageOfAvailableMemory: 50 );
致谢
- Teleboy:资助初始开发
版本
本项目使用语义化版本控制作为其版本控制方案。
开发
安装 pre-commit 钩子
rm -f .git/hooks/pre-commit cp dev-environment/pre-commit.sh .git/hooks/pre-commit
本地运行
先决条件
启动开发环境并 SSH 进入容器
make quickstart
单独的命令
构建容器镜像
docker compose build
在后台运行容器
docker compose up -d
SSH 进入容器
可用的命令
- php
- composer
docker compose exec php sh
停止容器
docker compose down
测试
docker compose exec php composer test
PHPStan
docker compose exec php composer phpstan
代码风格
docker compose exec php composer cs-fix