Linux系统优化:
1、不使用root登陆,使用普通用户登陆,使用sudo授权管理
2、禁止root远程连接
3、定时自动更新服务器时间
4、配置yum更新源,从国内更新下载安装rpm包
5、关闭selinux及iptables
6、调整文件描述符数量
7、定时自动清理/var/spool/clientmquene/目录垃圾文件
8、精简开机启动服务
9、Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。Net.ipv4.tcp_max_syn_backlog未收到客户端确认信息的连接请求数net.core.netdev_max_backlog, 网络接口送到内核队列的数据包最大数目net.core.somaxconn 系统最大并发tcp连接数 ........
10、锁定关键系统文件(chattr +i 文件)
11、清空/etc/issue,去除登陆前的系统及内核版本屏幕显示
Nginx调优
Nginx软件默认配置文件 /usr/local/nginx/conf/nginx.conf
1、server_tokens off; 隐藏版本号
2、User nginx nginx; 指定用户和组
3、worker_processes 2; 设置worker进程数
4、worker_cpu_affinity 01 10; 绑定 Nginx 进程到不同的 CPU 上
5、worker_connections 15000; 优化 Nginx 单个进程允许的最大连接数,受 Linux 系统进程的最大打开文件数限制,只有执行了 "ulimit -HSn 65535" 之后,worker_connections 才能生效
6、worker_rlimit_nofile 65535; 优化 Nginx worker 进程最大打开文件数
7、开启高效文件传输模式
8、tcp_nodelay on;优化 Nginx 连接超时时间。keepalive_timeout 65;客户端连接保持会话的超时时间。client_header_timeout 15;读取客户端请求头数据的超时时间。send_timeout 25;响应客户端的超时时间
9、client_max_body_size 8m; 限制上传文件的大小
10、location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$,缓存的对象。expires 3650d;缓存的时间。
11、优化 Nginx 站点目录,禁止访问指定目录,限制哪些 IP 不能访问网站
12、控制 Nginx 并发连接数,limit_conn addr 1;# 限制单个IP的并发连接数为1
13、代理upstream cluster { server 192.168.1.2:80 max_fails=3 fail_timeout=30s; server 192.168.1.3:80 max_fails=3 fail_timeout=30s;}
MySQL数据库优化
一、硬件的优化
cpu优化(64位cpu,建议多核绑定不同的服务)。内存。硬盘。网卡 (通过参数可以内核调优)
my.cnf参数优化的幅度很小,大部分在架构和sql语句的调优
二、my.cnf参数的优化
1、连接相关参数 max_connections,skip_name_resolve ....
2、文件相关参数。open_file_limit,max_binlog_size .....
3、 缓存相关参数 query_cache_size, binlog_cache_size .....
4、innodb相关参innodb_data_file_path, innodb_flush_log_at_trx_commit=2 ....
5、myisam相关参数 key_buffer_size, key_cache_block_size.....
三、架构优化
业务拆分、使用nosql持久化缓存、建集群、动静分离、读写分离、分库分表
四、sql语句优化
1、索引优化:慢查询日志分析,白名单机制,减少上线后的慢SQL,配my.cnf
Long_query_time=2;Log_slow_queries=/data/mysql/slowlog.log;按天轮询:slowlog.log
2、 大量复杂的sql语句拆分成多个小的sql语句
小结:
1、生产参数是一般情况下的参数,通过命令监控慢慢调整:show global status\G
2、mysql性能调优工具mysqlreport