ipset性能测试

测试方法 基于使用场景,最后⽣成的规则会是按照 ip 或者 ip:port 来进行过滤,测试时将使用10万条 iptables 规则来模拟对性能的压力;为了最大化测试压力情况,10万条 iptables 规则将都是==不会匹配==机房流量,通俗来讲,就是链式匹配会进行所有匹配并最后以无匹配告终。 网络负载的模拟将使用同机房 scp 来模拟,并按照下述条件进行匹配: 查看正常的拷贝速度,cpu负载等 我们建⽴10万条的普通 iptables 规则,查看规则建立速度,拷贝速度,CPU负载,CPU主要耗时操作等 我们建⽴10万的 ipset ,并把普通的 iptables 规则转为结合 ipset 的规则,查看规则建立速度,拷贝速度,CPU负载,CPU主要耗时等。 实验开始 步骤一:在同机房的⼀个机器构造⼀个大文件 同机房拷贝 观察网卡速度,CPU,系统主要耗时操作的等,此场景将在iptables 规则为空的情况下进行观察 使用 sar 观测网卡速度 使用 top 观察CPU负载 使用 perf top -G 观察CPU占用 步骤二:创建10万条iptables,观察⽹卡速度、cpu、系统主要耗时操作的等,会发现cpu利⽤率⼤部分被ipt占⽤,拷⻉速度下降到不到⼗分之⼀ bash 1 2 3 4 5 6 7 8 #!/bin/bash echo *filter for ((i=1;i<=$1;i++)) do echo -I INPUT -S $i -j ACCEPT done echo COMMIT 执行脚本 bash 1 $ time ....

 ·  · 

安装Debian11 (bullseye) Step-by-Step

Preparation debian11几乎可以使用任何旧的计算机硬件,因为最小安装的要求非常低。以下是最低要求和推荐要求: 最低要求 推荐要求 存储:10 Gigabytes 内存:512 Megabytes CPU: 1 GigaHertz 存储:10 Gigabytes内存:2 GigabytesCPU: 1 GigaHertz or more Debian11 EOL:August 31st, 2026 如何选择下载安装包 offical mirror aliyun mirror 官网提供了安装包的下载,其中CD是网络安装,DVD是离线安装 debian官方下载页面 Notes:CD安装包很小,下载下来是 debian-11.4.0-amd64-netinst.iso 如名所示,这是一个网络安装包,所以推荐下载DVD部分,可以达到离线安装的效果 安装步骤 在界面中选择“Install”,安装将开始。如果图形化安装可以选择“Graphical install”,这里选择“Install”。 欢迎页面 完成后,系统将提示选择安装时的“语言”。选择喜欢的语言,然后按“Enter”。这里选择英文 选择语言页面 这将是接下来安装步骤 安装步骤概述 选择位置与键盘布局 选择区域 选择区域 下面部署时选择键盘布局:中国大陆使用的键盘布局是美国-英语,不要选择英国-英语之类,布局是不一样的,会存在按键输出的结果会不同 选择键盘布局 完成上述操作后,将开始加载镜像。等待扫描完成。。。。 等待扫描组件 设置主机名和域名 这步骤中将配置一个“主机名”。与一个“域”名称。 配置主机名 “域” 可以选择留空确定 配置域 完成上述操作后,安装程序将提示需要设置 root 密码。输入您的 root 密码,然后在重新输入以进行验证后继续。 设置Root密码 设置非ROOT用户名、账户和密码 下一步创建一个非ROOT用户,这个步骤是必须的,并为这个新创建的帐户分配一个密码。以下截图将描述将如何完成此操作。 配置普通用户 为这个用户配置密码 为普通用户配置密码 为普通用户配置密码——二次确认 设置时钟时区 Eastern 美东时间 Central 北美中部...

 ·  · 

如何将systemd服务的输出重定向到指定文件

有一种更优雅的方法可以解决systemd输出到指定文件而非/var/log/message,需要使用systemd参数与rsyslog过滤器。并指示syslog过滤器按程序名称拆分其输出。 systemd所需参数为 SyslogIdentifier:required,设置日志标识符(发送日志消息时加在行首的字符串)(“syslog tag”)。 默认值是进程的名称。此选项仅在 StandardOutput= 或 StandardError= 的值包含 journal(+console), syslog(+console), kmsg(+console) 之一时才有意义, 并且仅适用于输出到标准输出或标准错误的日志消息。 StandardOutput:required,设置进程的标准输出(STDOUT)。 可设为 inherit, null, tty, journal, syslog, kmsg, journal+console, syslog+console, kmsg+console, file:path, append:path, socket, fd:name 之一。 StandardError:设置进程的标准错误(STDERR)。 取值范围及含义与 StandardOutput= 相同。但有如下例外: (1) inherit 表示使用 StandardOutput= 的值。 (2) fd:name 的默认文件描述符名称为 “stderr” rsyslog过滤器设置 使用rsyslog条件选择器。如果不改变rsyslog目前工作模式,按照如下操作: 新建/etc/rsyslog.d/xx.conf文件。 在新建文件内写入内容如下 单一条件处理。 conf if $programname == 'programname' then /var/log/programname.log # 停止往其他文件内写入,如果不加此句,会继续往/var/log/message写入。 if $programname == 'programname' then stop 多条件处理 会根据不同应用名称将不同的输出日志重定向到不同的文件内。 conf if ($programname == 'apiserver') then { action(type="omfile" file="/var/log/apiserver....

 ·  · 

centos配置

CentOS7 / CentOS8 设置终端屏幕分辨率 Centos7 修改文件 /boot/grub2/grub.cfg 搜索 linux16 conf vmlinuz-3.10.0-123.el7.x86_64 root=UUID=881ac4e6-4a55-47b1-b864-555de7051763 ro rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet LANG=en_US.UTF-8 添加如下,???具体看下表 text 1 2 3 vga=0x??? vga=0x340 CentOS 8 CentOS8 使用了 blsgcfg来解析文件生成菜单项。菜单项配置文件在/boot/loader/entries/下,每一个文件表示一个启动项。 这里需要修改启动项的参数,这里修改options,实际上是修改了 /boot/grub2/grubenv对应的值。 text 1 options $kernelopts $tuned_params 可以直接修改/etc/sysconfig/grub中的GRUB_CMDLINE_LINUX值后增加=加vga=0x??? (对照分辨率表修改???)。 修改完成后执行 grub2-mkconfig -o /boot/grub2/grub.cfg 重启即修改了/boot/grub2/grubenv对应的值。 centos7 启动引导顺序 查看默认启动项 grub2-editenv list 查看启动项列表 awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg 设置默认引导 grub2-set-default 'Windows 10' 设置默认启动项 grub2-set-default 2 需要按照启动项列表顺序 重新生成grub2.cfg grub2-mkconfig -o /boot/efi/EFI/centos/grub....

 ·  · 

named主从部署

conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // // See the BIND Administrator's Reference Manual (ARM) for details about the // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html options { listen-on port 53 { any; }; // listen-on-v6 port 53 { ::1; }; directory "/data/named"; dump-file "/data/named/data/cache_dump....

 ·  ·