1.使用linux服务器的使用,TCP协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中的某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放,因为服务器程序同时管理大量连接,所以很有必要保证无用的连接完全断开,否则大量僵死的连接会浪费许多服务器资源,创建一台centos7.9云主机,修改相应的配置文件,分别开启SYN Cookies;允许将TIME-WAIT sockets重新用于新的TCP连接;开启TCP连接中TIME-WAIT sockets的快速回收;修改系统默认的TIMEOUT时间为30,完成后提交修改节点的用户名密码和ip地址到答题框。
[root@controller glance]# cat >> /etc/sysctl.conf <<EOF
> net.ipv4.tcp_syncookies = 1
> net.ipv4.tcp_tw_reuse = 1
> net.ipv4.tcp_tw_recycle = 1
> net.ipv4.tcp_fin_timeout = 30
> EOF
执行sysctl -p命令让参数生效
[root@controller glance]# sysctl -p
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
2. 在controller节点上使用iaas-install-dashboad.sh脚本安装dashboad服务。安装完成后, 将 Dashboard 中的 Djingo 数据修改为存储在文件中(此种修改解决了 ALL-in-one 快照在其 他云平台 Dashboard 不能访问的问题)。
[root@controller ~]# vim /etc/openstack-dashboard/local_settings
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
#重启服务生效配置
[root@controller ~]# systemctl restart httpd
[root@controller cinder]# systemctl restart memcached
3.在 controller 节点上使用 iaas-install-mysql.sh 脚本安装 Mariadb、Memcached、RabbitMQ 等服务。安装服务完毕后,修改/etc/my.cnf 文件,完成下列要求:
1.设置数据库支持大小写;
2.设置数据库缓存 innodb 表的索引,数据,插入数据时的缓冲为 4G;
3.设置数据库的 log buffer 为 64MB;
4.设置数据库的 redo log 大小为 256MB;
5.设置数据库的 redo log 文件组为 2。
[root@controller ~]# vim /etc/my.cnf
lower_case_table_names =1 #数据库支持大小写
innodb_buffer_pool_size = 4G #数据库缓存
innodb_log_buffer_size = 64MB #设置数据库的log buffer即redo日志缓冲
innodb_log_file_size = 256MB #设置数据库的redo log即redo日志大小
innodb_log_files_in_group = 2 #数据库的redo log文件组即redo日志的个数配置
[root@controller ~]# systemctl restart mariadb
4.在平时使用OpenStack平台的时候,当同时启动大量虚拟机时,会出现排队现象,导致虚拟机启动超时从而获取不到IP地址而报错失败,请使用自行搭建的OpenStack平台。修改nova相关配置文件,使 虚拟机可以在启动完成后获取IP地址,不会因为超时而报错。
[root@compute ~]# vim /etc/nova/nova.conf
找到如下这行
#vif_plugging_is_fatal=true
将改行的注释去掉,并将true改为false,修改完之后如下:
vif_plugging_is_fatal=false
保存退出nova.conf,最后重启nova服务,也可以重启所有服务
[root@compute ~]# openstack-service restart
5.使用自行搭建的OpenStack私有云平台,优化KVM的I/O调度算法,将默认的模式修改为none模式。
必须用云主机优化,因为虚拟机没有none模式
查看当前使用的调度算法
[root@controller ~]# cat /sys/block/vda/queue/scheduler
[mq-deadline] kyber none
可以看到当前的I/O调度算法mq-deadline,如果当前全是用的SSD硬盘,那么是显然none算法更合适,修改算法为none
[root@test ~]# echo none > /sys/block/vda/queue/scheduler
[root@test ~]# cat /sys/block/vda/queue/scheduler
[none] mq-deadline kyber
可以看到当前的I/O调度算法为none模式
6.在openstack平台的一台计算节点创建虚拟机,若是第一次在该节点创建此虚拟机,会先将镜像文件复制到该计算节点目录/var/lib/nova/instances/_base,长期下来,该目录会占用比较大的磁盘空间而需要清理,可以通过修改nova的配置文件来自动清理该缓存目录,即在该节点没有使用其镜像启动的云主机,那么这个镜像在过一定的时间后就会被自动删除.
[root@compute ~]# vim /etc/nova/nova.conf
remove_unused_base_images=true
[root@compute ~]# systemctl restart openstack-nova-compute
7. Linux 服务器大并发时,往往需要预先调优 Linux 参数。默认情况下,Linux 最大文件 句柄数为 1024 个。当你的服务器在大并发达到极限时,就会报出“too many open files”。 创建一台云主机,修改相关配置,将控制节点的最大文件句柄数永久修改为 65535。
#永久生效
[root@controller ~]# cat >> /etc/security/limits.conf <<EOF
> * soft nofile 65535
> * hard nofile 65535
> EOF
8. 搭建完 OpenStack 平台后,关闭系统的内存共享,打开透明大页。
#关闭内存共享
[root@controller ~]# echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
#验证
[root@controller ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]