剩下的时间就开始学习开源项目,完善自己的项目。
接下来cillianplatform项目的更新频率保持一周一次,等稳定了到公开测试版本,会告知大家。
至于文章分享,本月的时间就是围绕项目四个模块来分享,传统模块,包括linux、网络、监控、日志等,云原生模块,围绕docker、k8s等,自动化模块、智能化平台模块等,然后就是项目更新的一些内容,和大家共同学习进步!
今天就从linux开始,先分享一个linux命令搜查学习的web版本,这个仓库里面命令能学个七七八八,你的linux肯定没问题。
仓库地址:
https://github.com/jaywcjlove/linux-command
本地docker部署:
下载镜像:
docker pull wcjiang/linux-command
# Or
docker pull ghcr.io/jaywcjlove/linux-command:latest
部署容器:
docker run --name linux-command --rm -d -p 9665:3000 wcjiang/linux-command:latest
# Or
docker run --name linux-command -itd -p 9665:3000 wcjiang/linux-command:latest
# Or
docker run --name linux-command -itd -p 9665:3000 ghcr.io/jaywcjlove/linux-command:latest
在浏览器中访问以下 URL:
http://localhost:9665/
可以看到部署非常方便,老手复习,新手学习都是非常好的,也可以部署到自己的网站,详情可以查看官方仓库,大家可以尝试一下!
再来看看linux内核常用的参数优化:
Linux内核参数优化可以根据不同的应用场景进行调整,以提高系统性能和稳定性。以下是一些常见的Linux内核参数优化:
这里附上一个调优的脚本,我来简单翻译一下:
地址:
https://github.com/nyist-mirror/kernel_tuning
# !/bin/sh
#
####微调网络参数以获得更好的性能
当高传入连接请求率导致连接失败时,更改以下参数
Echo "100000" > /proc/sys/net/core/netdev_max_backlog
#接收新TCP连接的监听队列大小(默认:128)
Echo "4096" > /proc/sys/net/core/somaxconn
TIME-WAIT中同时持有的最大套接字数(默认:180000)
Echo "600000" > /proc/sys/net/ipv4/tcp_max_tw_buckets
#设置所有协议的最大Socket接收缓冲区(以字节为单位)
Echo "16777216" > /proc/sys/net/core/rmem_max
Echo "16777216" > /proc/sys/net/core/rmem_default
#设置所有协议的最大Socket发送缓冲区(以字节为单位)
Echo "16777216" > /proc/sys/net/core/wmem_max
Echo "16777216" > /proc/sys/net/core/wmem_default
设置Linux自动调优TCP缓冲区限制
Echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
Echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_wmem
Echo "0" > /proc/sys/net/ipv4/tcp_sack
Echo "0" > /proc/sys/net/ipv4/tcp_dsack
缺省情况下,TCP在连接关闭时将各种连接指标保存在路由缓存中,以便在不久的将来建立的连接可以使用这些指标来设置初始条件。通常,这会提高整体性能,但有时可能会导致性能下降。如果设置,TCP将不会缓存关闭连接时的度量。
Echo "1" > /proc/sys/net/ipv4/tcp_no_metrics_save
在终止TCP连接之前需要重试多少次
Echo "5" > /proc/sys/net/ipv4/tcp_retries2
如果连接当前未使用,发送TCP keepalive数据包以保持连接存活的频率。此值仅在启用keepalive时使用
Echo "120" > /proc/sys/net/ipv4/tcp_keepalive_time
每个keepalive探针等待应答的时间。换句话说,当您尝试计算连接死亡(keepalive死亡)之前需要多长时间时,此值非常重要。
Echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl
确定超时前的探测数
Echo "3" > /proc/sys/net/ipv4/tcp_keepalive_probes
#如果你是关闭socket的一方,socket保持FIN-WAIT-2状态需要多长时间(默认:60)
Echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
#有时,网络中的数据包重排序可以解释为数据包丢失,因此增加该参数的值应该提高性能(默认值为“3″”)
Echo "15" > /proc/sys/net/ipv4/tcp_reordering
#
Echo "cubic" > /proc/sys/net/ipv4/ tcp_conestion_control
#该值取决于系统的总内存。在不同的情况下明智地使用它
# echo "262144" > /proc/sys/net/ipv4/tcp_max_orphans
#禁用核心转储
Echo "0" > /proc/sys/fs/ suid_dumable
#启用ExecShield
Echo "1" > /proc/sys/kernel/exec-shield
Echo "1" > /proc/sys/kernel/randomize_va_space
####网络参数,提高安全性
#禁用包转发(如果这台机器不是路由器)
Echo "0" > /proc/sys/net/ipv4/ip_forward
Echo "0" > /proc/sys/net/ipv4/conf/all/send_redirects
Echo "0" > /proc/sys/net/ipv4/conf/default/send_redirects
#启用tcp_syncookies在面对SYN flood攻击时接受合法连接
Echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Turn off禁用IPv4协议特性,这些特性被认为很少有合法用途,而且很容易被滥用
Echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
Echo "0" > /proc/sys/net/ipv4/conf/default/accept_source_route
Echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
Echo "0" > /proc/sys/net/ipv4/conf/default/accept_redirects
Echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects
Echo "0" > /proc/sys/net/ipv4/conf/default/secure_redirects
#记录可疑数据包(如果系统有过多的日志记录,应该关闭此功能)
Echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
#防范ICMP攻击
Echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
Echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#启用rfc推荐的源验证(不应该在非常复杂网络的路由器上使用)
Echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
Echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter
增加IPv4端口范围以接受更多连接
Echo "5000 65535" > /proc/sys/net/ipv4/ip_local_port_range
#禁用IPV6
Echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6
Echo "1" > /proc/sys/net/ipv6/conf/default/disable_ipv6
#
####文件系统调优
增加系统文件描述符限制
Echo "7930900" > /proc/sys/fs/file-max
#允许更多pid
/proc/sys/kernel/pid_max
使用高达95%的RAM(5%空闲)
Echo "5" > /proc/sys/vm/swappiness
#
Echo "20" > /proc/sys/vm/dirty_background_ratio
#
Echo "25" > /proc/sys/vm/dirty_ratio
Echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
参考文献:
今天的分享就到这了,祝学习顺利!