Linux

mem centos6.5 -/+ buffers/cache: -buffers/cache 的内存数:95 (等于第1行的 used - buffers - cached) +buffers/cache 的内存数: 32 (等于第1行的 free + buffers + cached) 1. -buffers/cache 反映的是被程序实实在在吃掉的内存, 2. +buffers/cache 反映的是可以挪用的内存总数。 Linux Ctrl C无效 原因:rvm 版本bug 解决方法: 命令查看: 正常: [root@server002 ~]# trap trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SIGTTOU 异常: [root@server002 ~]# trap trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SIGTTOU trap -- '' SIGINT trap -- '' SIGQUIT 现象:终端Ctrl + C完全失效,当执行trap 信号命令时多处两个SIGINT和SIGQUIT两项 升级rvm 版本:rvm get stable( 1.29.4 版本以上都可以解决) 卸载rvm工具:gem uninstall rvm pip 国内源临时加速 pip install markdown -i <https://pypi.tuna.tsinghua.edu.cn/simple> 永久配置 # 清华源 pip config set global.index-url <https://pypi.tuna.tsinghua.edu.cn/simple> # 或: # 阿里源 pip config set global.index-url <https://mirrors.aliyun.com/pypi/simple/> # 腾讯源 pip config set global.index-url <http://mirrors.cloud.tencent.com/pypi/simple> goaccess conda • 安装uwsgi: conda install -c conda-forge uwsgi # 取消自动进入base环境 conda config --set auto_activate_base false lvm lvm pvcreate /dev/vdc vgextend VolGroup /dev/vdc lvextend -l +100%FREE /dev/mapper/VolGroup-LogVol00 resize2fs /dev/mapper/VolGroup-LogVol00 根据日期排序删除 ls -ltd FilePath | awk '{if(NR>10){print $0}}' | xargs rm -rf; 磁盘在线扩容 安装工具包: yum -y install cloud-utils-growpart 给指定分区扩容: growpart /dev/vda 1 扩容支文件系统(如果无法resize,确保分区已扩容的情况下重启服务器离线扩容): resize2fs /dev/vda1 timewait查看 netstat -an | awk '{print $6}' | sort | uniq -c | sort -nr 路由新增删除 route add -net 106.15.100.0/24 gw 183.57.42.65 route del -net 106.15.100.0/24 gw 183.57.42.65 maildrop删除 rsync --delete -rlptD /tmp/empty/ /var/spool/postfix/maildrop/ ssh config ServerAliveInterval 60 ServerAliveCountMax 30 HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa UserKnownHostsFile=/dev/null StrictHostKeyChecking no UserKnownHostsFile=/dev/null Host * ServerAliveInterval 60 ServerAliveCountMax 30 HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa StrictHostKeyChecking no Host IPADDRESS HostName IPADDRESS User root IdentityFile ~/.ssh/id_rsa crontab 使用vim编辑 1.对于一些系统,crontab的默认编译器使用起来不是很方便,想换成熟悉的vim,按下面操作即可:编辑.profile文件,增加EDITOR=vim;export EDITOR即可; 2.在命令行直接输入EDITOR=vim;export EDITOR ossutil /opt/ossutil64 cp xxx.sql.gz oss://BUCKET/dir/ -u -c CONFIGFILE 多线程压缩 pigz # 压缩文件 pigz -k filename # -k 保留原文件 pigz -l filename.gz # -l 查看文件压缩内容 # 压缩目录 tar --use-compress-program="pigz -k" -cvf dir1.tar.gz dir1 # 解压文件 pigz -k -d filename.gz # 解压目录 tar --use-compress-program="pigz -k " -xvf dir1.tar.gz requirements 依赖生成: pipreqs --encoding utf8 --force openssl 证书测试 openssl s_client -connect domainName:443 强密码生成 openssl rand -base64 15 系统使用规范(自有服务统一授权为普通用户权限) 统一数据目录:/data 统一日志目录:/var/log 应用统一管理工具:supervisor 三方应用目录:/opt 示例服务标记:应用目录:application 应用备份:appbak 公共脚本:scripts

2024年10月17日 · Leon

Sysctl

备注: /proc/sys/:目录是Linux内核在启动后生成的伪目录,其目录下的net文件夹中存放了当前系统中开启的所有内核参数,目录树结构与参数的完整名称相关. 如: net.ipv4.tcp_tw_recycle,它对应的文件是/proc/sys/net/ipv4/tcp_tw_recycle文件,文件的内容就是参数值。 允许回收TCP连接,必须为1 Linux从4.12内核版本开始移除了 配置 net.ipv4.tcp_tw_recycle = 0 阿里云 - Linux系统常用内核网络参数介绍与常见问题处理: Sysctl 操作命令 查看当前生效的内核参数 sysctl -a 生效更改的内核参数 sysctl -p 禁用大内存页面 Transparent Huge Pages for Redis/MongoDB ,默认是 always echo "never" > /sys/kernel/mm/transparent_hugepage/enabled ulimits 优化设置打开文件的最大数量(文件描述符),按需修改最大数值。 编辑 /etc/security/limits.conf ,添加或替换下面几行代码到文件结尾. root soft nofile 65535 root hard nofile 65535 # root hard nofile 65535 * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 sysctl.conf 优化 # 脏数据的比例和处理,根据场景不同设置, # 参考 <https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/> # 如果是数据库服务器,希望数据能够尽快安全写入,可降低内存缓存比例 vm.dirty_background_ratio = 5 vm.dirty_ratio = 10 # 如果是业务服务器,对数据安全写入无要求,可加大内存缓存比例 vm.dirty_background_ratio = 50 vm.dirty_ratio = 80 # 设置为1,内核允许分配所有的物理内存,Redis常用 # 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 # 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 # 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 vm.overcommit_memory = 1 fs.file-max = 2097152 # 系统拥有的内存数,ElasticSearch启动必备 vm.max_map_count = 262144 # 数据包转发,0表示禁止 net.ipv4.ip_forward = 0 # 设置为1,tcp链接参数重新配置 net.ipv4.tcp_no_metrics_save = 1 # 处理无源路由 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # 禁用 sysrq 功能 kernel.sysrq = 0 # 控制 core 文件的文件名中是否添加 pid 作为扩展 kernel.core_uses_pid = 1 # 服务端主动关闭后,客户端释放连接的超时,FIN-WAIT-2状态<30 net.ipv4.tcp_fin_timeout = 10 # 设置为1,防止 SYNC FLOOD 攻击 net.ipv4.tcp_syncookies = 1 # TIME_WAIT socket的最大数目,不宜太大或者太小,nginx反向代理必备 net.ipv4.tcp_max_tw_buckets = 262144 # 允许重用TCP连接,0表示关闭 net.ipv4.tcp_tw_reuse = 1 # 允许TCP保持的空闲keepalive时长,不需要太长 net.ipv4.tcp_keepalive_time = 30 # 链接失效前发送探测包数量 net.ipv4.tcp_keepalive_probes = 3 # 链接无确认时重新发送的频度,default 75s net.ipv4.tcp_keepalive_intvl = 30 # 消息队列存放消息的总字节数 kernel.msgmnb = 65536 # 系统范围内最大多少个消息队列 kernel.msgmni = 2048 # 消息队列的最大消息大小,默认8k,建议64kb kernel.msgmax = 65536 # 每个消息的最大size. kernel.shmmax = 68719476736 # 内核参数定义单个共享内存段的最大值 kernel.shmall = 4294967296 # 交换内存使用 vm.swappiness = 0 # 系统作为TCP客户端连接自动使用的端口(start,end),可发起并发连接数为end-star net.ipv4.ip_local_port_range = 1024 65500 # socket缓冲区发送和接收的默认值 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 # tcp数据发送和接收值 net.core.wmem_max = 16777216 net.core.rmem_max = 16777216 # TCP 缓冲区内存,连接数达到非常高时候需要配置好 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_mem = 786432 2097152 3145728 # 打开 SACK 选项,防止伪造sequence net.ipv4.tcp_sack = 1 # 禁用timestamp,重要,高并发下设置为0 net.ipv4.tcp_timestamps = 0 # 激活窗口扩充因子,支持64kb以上数据传输 (2^30)1GB net.ipv4.tcp_window_scaling = 1 # ACCEPT等待队列长度,当内核处理慢时多出的包放入网卡接受队列,反之为允许放入队列的最大数量 net.core.netdev_max_backlog = 262144 # 允许最大并发连接数,重要 net.core.somaxconn = 262144 # SYNC等待队列长度,太大了排队也没用 net.ipv4.tcp_max_syn_backlog = 262144 # 不属于任何进程的socket数目,不宜太大,防止攻击 net.ipv4.tcp_max_orphans = 262144 # 处于SYN_RECV状态时重传SYN+ACK包的次数,5以内 net.ipv4.tcp_synack_retries = 2 # 外向syn握手重试次数,5以内 net.ipv4.tcp_syn_retries = 2 # arp相邻层有效性周期 net.ipv4.neigh.default.gc_stale_time=120 # 数据包反向路由验证,0:关闭 1:严格 2:松散 net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.all.arp_announce=2 net.ipv4.conf.lo.arp_announce=2 net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.lo.arp_ignore=1 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 # 关闭tcp链接传输的慢启动 net.ipv4.tcp_slow_start_after_idle = 0 # Linux实例NAT哈希表满导致ECS实例丢包 # nf_conntrack_buckets * 4 = nf_conntrack_max # net.netfilter.nf_conntrack_buckets = 163837 net.netfilter.nf_conntrack_max = 655350 net.netfilter.nf_conntrack_tcp_timeout_established = 1200 阿里云系统(alibaba cloud linux 3)默认配置 • Alibaba cloud linux 3 default sysctl configure vm.swappiness = 0 kernel.sysrq = 1 net.ipv4.neigh.default.gc_stale_time = 120 # see details in <https://help.aliyun.com/knowledge_detail/39428.html> net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 # see details in <https://help.aliyun.com/knowledge_detail/41334.html> net.ipv4.tcp_max_tw_buckets = 262144 net.ipv4.tcp_syncookies = 1 # tcp_max_syn_backlog will only take effect when net.ipv4.tcp_syncookies == 0 # net.ipv4.tcp_max_syn_backlog = 65536 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0

2024年10月15日 · Leon