debian

Debian LNMP如何进行资源限制

小樊
46
2025-05-12 04:50:01
栏目: 智能运维

在Debian系统中,使用LNMP(Linux, Nginx, MySQL, PHP)堆栈时,可以通过以下方法对各个组件进行资源限制:

  1. Nginx资源限制:

    • 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf
    • http块中,可以使用worker_processesworker_connections指令来限制Nginx的资源使用。例如:
      http {
          worker_processes auto;
          events {
              worker_connections 1024;
          }
      }
      
    • 若要限制特定虚拟主机的资源使用,可以在相应的server块中设置limit_connlimit_req指令。
  2. MySQL资源限制:

    • 打开MySQL配置文件,通常位于/etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf
    • [mysqld]部分,可以使用以下设置来限制资源使用:
      [mysqld]
      max_connections = 100
      key_buffer_size = 128M
      table_open_cache = 64
      sort_buffer_size = 4M
      
    • 若要限制特定用户的资源使用,可以在[mysqld]部分添加max_user_connections设置。
  3. PHP资源限制:

    • 打开PHP-FPM配置文件,通常位于/etc/php/版本号/fpm/pool.d/www.conf
    • www.conf文件中,可以使用以下设置来限制资源使用:
      php_admin_value[max_execution_time] = 30
      php_admin_value[memory_limit] = 128M
      php_admin_value[file_uploads] = 1
      php_admin_value[upload_max_filesize] = 2M
      php_admin_value[post_max_size] = 8M
      
    • 若要限制特定虚拟主机的资源使用,可以在相应的Nginx配置文件中的location块中设置fastcgi_param指令。
  4. 使用cgroups进行资源限制:

    • 安装cgroup工具,例如sudo apt-get install cgroup-tools
    • 创建一个新的cgroup,例如sudo cgcreate -g memory:/mygroup
    • 为新创建的cgroup设置资源限制,例如sudo cgset -r memory.limit_in_bytes=1G mygroup
    • 将进程添加到cgroup中,例如sudo cgclassify -g memory:mygroup <PID>

通过以上方法,您可以根据实际需求对Debian LNMP堆栈中的各个组件进行资源限制。

0
看了该问题的人还看了