服务器的硬件资源 (4 核 CPU 、 4GB 内存) 的优化建议

针对提供的 MySQL 配置文件,在考虑到服务器的硬件资源 (4 核 CPU 、 4GB 内存) 的情况下,以下是一些优化建议:

一、整体调整

  1. 内存相关设置

    • 由于内存有限,适当降低一些内存相关的设置。
    • innodb_buffer_pool_size:调整为 2G 左右,例如 innodb_buffer_pool_size = 2G 。
    • max_heap_table_size 和 tmp_table_size:调整为 256M ,例如 max_heap_table_size = 256M , tmp_table_size = 256M 。
  2. 连接数相关设置

    • max_connections:根据实际需求和资源限制,可适当降低,例如设置为 200 。
  3. 日志相关设置

    • 考虑到内存和存储空间,暂时保留 skip-log-bin ,如果对数据恢复要求较高,可以根据实际情况启用并适当调整 binlog_file_size 。

二、具体优化后的配置

[client]
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
binlog_cache_size = 64K
thread_stack = 256K
join_buffer_size = 1024K
max_heap_table_size = 256M
port        = 3306
socket      = /tmp/mysql.sock
datadir = /www/server/data
default_storage_engine = InnoDB
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 16M
table_open_cache = 128
sort_buffer_size = 256K
net_buffer_length = 4K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 64
tmp_table_size = 256M
lower_case_table_names = 1
default_authentication_plugin = mysql_native_password
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp = true
max_connections = 200
max_connect_errors = 100
open_files_limit = 65535
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=3
innodb_data_home_dir = /www/server/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /www/server/data
innodb_buffer_pool_size = 2G
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 75
innodb_read_io_threads = 2
innodb_write_io_threads = 2

[mysqldump]
quick
max_allowed_packet = 128M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 128K
read_buffer = 1M
write_buffer = 1M

 

针对提供的 Nginx 配置,在考虑到服务器的硬件资源 (4 核 CPU 、 4GB 内存) 的情况下,以下是一些优化建议:

一、整体调整

  1. 调整工作进程数

    • 将 worker_processes 设置为与 CPU 核心数相同,即 worker_processes 4 。
  2. 调整文件描述符限制

    • 根据系统资源和预期负载,适当调整 worker_rlimit_nofile ,例如设置为 worker_rlimit_nofile 65535 。

二、具体优化后的配置

user  www www;
worker_processes 4;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 65535;

stream {
    log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';
  
    access_log /www/wwwlogs/tcp-access.log tcp_format;
    error_log /www/wwwlogs/tcp-error.log;
    include /www/server/panel/vhost/nginx/tcp/*.conf;
}

events
    {
        use epoll;
        worker_connections 65535;
        multi_accept on;
    }

http
    {
     real_ip_header X-Forwarded-For;
     set_real_ip_from 0.0.0.0/0;

        include       mime.types;
        #include luawaf.conf;

        include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 500m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 30;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length 100k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 6;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/json image/jpeg image/gif image/png font/ttf font/otf image/svg+xml application/xml+rss text/x-js;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
        limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;

server
    {
        listen 888;
        server_name phpmyadmin;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;
        location ~ /tmp/ {
            return 403;
        }

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
include /www/server/panel/vhost/nginx/*.conf;
}

意事项

  1. 在修改配置文件后,务必重启 Nginx 服务以使更改生效。
  2. 优化设置应根据实际的业务负载和使用情况进行测试和调整。
  3. 定期监控服务器的性能指标,以便及时发现潜在的问题并进行进一步的优化。

针对您提供的 PHP-FPM 配置,在考虑到服务器的硬件资源 (4 核 CPU 、 4GB 内存)php8.2 的情况下,以下是一些优化建议:

一、整体调整

  1. 调整进程管理器设置

    • 由于内存有限,适当降低 pm.max_children 的值,例如设置为 60 。
    • 调整 pm.start_servers 、 pm.min_spare_servers 和 pm.max_spare_servers ,例如分别设置为 8 、 8 和 20 。
  2. 调整监听设置

    • 考虑安全性,将 listen.allowed_clients 设置为实际需要的 IP 地址范围。

二、具体优化后的配置

[global]
pid = /www/server/php/82/var/run/php-fpm.pid
error_log = /www/server/php/82/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi-82.sock
listen.backlog = 8192
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.status_path = /phpfpm_82_status
pm.max_children = 60
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 30
slowlog = /www/server/php/82/var/log/slow.log

注意事项

  1. 在修改配置文件后,务必重启 PHP-FPM 服务以使更改生效。
  2. 优化设置应根据实际的业务负载和使用情况进行测试和调整。
  3. 定期监控服务器的性能指标,以便及时发现潜在的问题并进行进一步的优化。

针对您提供的 PHP-FPM 配置,在考虑到服务器的硬件资源 (4 核 CPU 、 4GB 内存)  php7.4 的情况下,以下是一些优化建议:

一、整体调整

  1. 调整进程管理器设置

    • 由于内存有限,适当降低 pm.max_children 的值,例如设置为 60 。
    • 调整 pm.start_servers 、 pm.min_spare_servers 和 pm.max_spare_servers ,例如分别设置为 8 、 8 和 20 。
  2. 调整监听设置

    • 考虑安全性,将 listen.allowed_clients 设置为实际需要的 IP 地址范围。

二、具体优化后的配置

[global]
pid = /www/server/php/74/var/run/php-fpm.pid
error_log = /www/server/php/74/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi-74.sock
listen.backlog = 8192
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.status_path = /phpfpm_74_status
pm.max_children = 60
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 30
slowlog = /www/server/php/74/var/log/slow.log

注意事项

  1. 在修改配置文件后,务必重启 PHP-FPM 服务以使更改生效。
  2. 优化设置应根据实际的业务负载和使用情况进行测试和调整。
  3. 定期监控服务器的性能指标,以便及时发现潜在的问题并进行进一步的优化。
 
 
© 版权声明
THE END
喜欢就支持一下吧
点赞7309我要打赏 分享
抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容