<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>用户社区 on 浙江物链网络科技有限公司</title><link>https://www.wlstack.com/cn/blog/</link><description>Recent content in 用户社区 on 浙江物链网络科技有限公司</description><generator>Hugo</generator><language>zh-CN</language><managingEditor>info@wlstack.com (物链网络)</managingEditor><webMaster>info@wlstack.com (物链网络)</webMaster><lastBuildDate>Sun, 22 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.wlstack.com/cn/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>从事IDC代理业务相关所需的名词解释</title><link>https://www.wlstack.com/cn/blog/%E4%BB%8E%E4%BA%8Bidc%E4%BB%A3%E7%90%86%E4%B8%9A%E5%8A%A1%E7%9B%B8%E5%85%B3%E6%89%80%E9%9C%80%E7%9A%84%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/%E4%BB%8E%E4%BA%8Bidc%E4%BB%A3%E7%90%86%E4%B8%9A%E5%8A%A1%E7%9B%B8%E5%85%B3%E6%89%80%E9%9C%80%E7%9A%84%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A/</guid><description>&lt;h2 id="计费模式相关">计费模式相关&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>95计费&lt;/strong>&lt;/td>
 &lt;td>每月按带宽峰值第95百分位值计费（去掉最高5%的峰值点），常用于大流量业务。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>日95月平&lt;/strong>&lt;/td>
 &lt;td>每日取95峰值，再计算当月每日平均值的计费模式（比传统95计费成本更低）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>包端口&lt;/strong>&lt;/td>
 &lt;td>固定租用物理端口（如10G端口），按端口容量而非实际流量计费。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>补贴端口&lt;/strong>&lt;/td>
 &lt;td>运营商为吸引客户提供的低价或免费端口（通常需承诺长期合作或达到流量门槛）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>配比端口&lt;/strong>&lt;/td>
 &lt;td>主端口与备份端口的绑定套餐（如主用10G+备用1G，或主备冗余端口或IDC端口配多少城域网端口，或IDC计费端口配多少免费端口）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>酬金&lt;/strong>&lt;/td>
 &lt;td>运营商给代理商的销售返佣（如机柜酬金、专线酬金、CDN代销订单返点）。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="资源类型">资源类型&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>80资源&lt;/strong>&lt;/td>
 &lt;td>支持HTTP 80端口的服务器（用于常规网页服务）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>非80资源&lt;/strong>&lt;/td>
 &lt;td>仅支持非80端口（如443/8080）的服务器（常用于视频、下载等业务）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>云主机资源&lt;/strong>&lt;/td>
 &lt;td>基于虚拟化的云计算主机（弹性扩展，按需付费）。一般特指天翼云、移动大云这些拿云主机跑PCDN的&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>高防&lt;/strong>&lt;/td>
 &lt;td>提供DDoS防护的服务器（防御能力可达Tbps级）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>源站&lt;/strong>&lt;/td>
 &lt;td>业务数据的原始服务器（CDN从此节点拉取内容）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>裸纤&lt;/strong>&lt;/td>
 &lt;td>运营商提供的纯物理光纤直连（无协议转换，延迟最低）。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="网络架构">网络架构&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>城域网&lt;/strong>&lt;/td>
 &lt;td>运营商互联网专线。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>BGP&lt;/strong>&lt;/td>
 &lt;td>多线路智能路由协议（实现电信/联通/移动三网自动选最优路径）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>三线&lt;/strong>&lt;/td>
 &lt;td>同时接入电信+联通+移动三家运营商网络。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>双线/多线&lt;/strong>&lt;/td>
 &lt;td>接入两家（双线）或多家（多线）运营商。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>OTN&lt;/strong>&lt;/td>
 &lt;td>光传输网络（提供大带宽、低延迟的底层光缆资源）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>三线单IP&lt;/strong>&lt;/td>
 &lt;td>三网融合但共用一个IP（通过BGP实现智能解析，BGP为主动广播宣告IP），或运营商地址代为广播。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>三线三IP&lt;/strong>&lt;/td>
 &lt;td>三网独立IP（需用户自行配置DNS调度）。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="cdn技术">CDN技术&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>CDN&lt;/strong>&lt;/td>
 &lt;td>内容分发网络：将内容缓存到边缘节点，加速用户访问。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>PCDN&lt;/strong>&lt;/td>
 &lt;td>P2P+CDN混合技术，用家宽汇聚接服务器或单独接路由器/盒子跑cdn。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>ACDN&lt;/strong>&lt;/td>
 &lt;td>用接入城域网大带宽的物理机群按虚拟机或物理机或k8s api给互联网top客户跑CDN。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>融合CDN&lt;/strong>&lt;/td>
 &lt;td>整合多家CDN厂商资源的调度平台（自动选择最优服务商）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>三网CDN&lt;/strong>&lt;/td>
 &lt;td>支持电信/联通/移动三网覆盖的CDN服务。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>调度&lt;/strong>&lt;/td>
 &lt;td>控制业务流量，确保低价端口跑满，高价端口只跑95。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>削峰调度&lt;/strong>&lt;/td>
 &lt;td>在多个节点之间或端口之间控制业务流量，确保只跑95。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="测试与运营">测试与运营&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>测试期&lt;/strong>&lt;/td>
 &lt;td>资源开通后的免费试用阶段（通常7-30天）。个别运营商可按端口批次开关多次测试。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>测试机&lt;/strong>&lt;/td>
 &lt;td>用于业务上线前到测试服务器。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>压测&lt;/strong>&lt;/td>
 &lt;td>压力测试：模拟高并发测试带宽是否配足额。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>单线测试机&lt;/strong>&lt;/td>
 &lt;td>仅接入单运营商（如电信）的测试服务器。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>三线测试机&lt;/strong>&lt;/td>
 &lt;td>接入三网线路的测试服务器。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>流量误差&lt;/strong>&lt;/td>
 &lt;td>运营商计费流量与用户监控流量的差异（行业允许±3%）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>抠流量&lt;/strong>&lt;/td>
 &lt;td>通过技术手段（如压缩/去冗余）降低计费流量。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>流量倒挂&lt;/strong>&lt;/td>
 &lt;td>入流量 &amp;gt; 出流量（CDN场景中通常出流量更大，倒挂需排查异常）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>三网测试&lt;/strong>&lt;/td>
 &lt;td>同时测试电信/联通/移动三网的访问质量。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="其他行话">其他行话&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>跑异网&lt;/strong>&lt;/td>
 &lt;td>流量跨运营商传输（如电信用户访问联通服务器，质量可能下降）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>1024&lt;/strong>&lt;/td>
 &lt;td>带宽单位换算：1Gbps = 1024Mbps。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>3个1024&lt;/strong>&lt;/td>
 &lt;td>指三次1024，即1Gbps=1024mbps=1024x1024kbps=1024x1024x1024bitps&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>天翼云CDN&lt;/strong>&lt;/td>
 &lt;td>中国电信旗下的CDN服务。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>代下单&lt;/strong>&lt;/td>
 &lt;td>通过代理商购买运营商资源（常用于无直接合作资质的企业）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>IP备案&lt;/strong>&lt;/td>
 &lt;td>将服务器IP绑定到已备案域名（国内业务强制要求）。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="一网络覆盖与结算">&lt;strong>一、网络覆盖与结算&lt;/strong>&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>跨省&lt;/strong>&lt;/td>
 &lt;td>业务流量跨越省级行政边界（如北京→上海），涉及&lt;strong>跨省结算费&lt;/strong>（运营商间结算成本高）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>跨地市&lt;/strong>&lt;/td>
 &lt;td>流量在同一省内跨城市需要结算&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>结出&lt;/strong>&lt;/td>
 &lt;td>运营商向其他运营商&lt;strong>输出流量&lt;/strong>（需支付结算费）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>结入&lt;/strong>&lt;/td>
 &lt;td>运营商&lt;strong>接收其他运营商流量&lt;/strong>（获得结算收入）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>净结入&lt;/strong>&lt;/td>
 &lt;td>结入金额 - 结出金额（正值表示结算盈利）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>跨省比例&lt;/strong>&lt;/td>
 &lt;td>业务流量中跨省流量的占比（通常要求≤30%以控制成本）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="二机房基础设施">&lt;strong>二、机房基础设施&lt;/strong>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>技术细节&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>机房等级&lt;/strong>&lt;/td>
 &lt;td>国标GB50174分级：&lt;!-- raw HTML omitted -->• &lt;strong>A级&lt;/strong>：容错型（双路供电+备份）&lt;!-- raw HTML omitted -->• &lt;strong>B级&lt;/strong>：冗余型&lt;!-- raw HTML omitted -->• &lt;strong>C级&lt;/strong>：基础型&lt;/td>
 &lt;td>金融/政企必选A级，Web服务可选B级&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>自有机房&lt;/strong>&lt;/td>
 &lt;td>运营商自建并管理的机房（如移动南方基地）&lt;/td>
 &lt;td>稳定性高，资源调配快&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>合作机房&lt;/strong>&lt;/td>
 &lt;td>第三方建设，运营商租用机柜的资源池&lt;/td>
 &lt;td>成本低，扩容灵活&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>PUE&lt;/strong>&lt;/td>
 &lt;td>电能使用效率 = 总耗电 / IT设备耗电（理想值≈1.3）&lt;/td>
 &lt;td>PUE&amp;gt;1.8属高能耗，北上广深要求≤1.4&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>机柜功率&lt;/strong>&lt;/td>
 &lt;td>单机柜供电能力（标准4-6kW，高密柜可达10-20kW）&lt;/td>
 &lt;td>GPU算力集群需≥10kW&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>风冷&lt;/strong>&lt;/td>
 &lt;td>传统空调制冷（适用于中低密度机柜）&lt;/td>
 &lt;td>成本低，维护简单&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>液冷&lt;/strong>&lt;/td>
 &lt;td>液体循环冷却（用于GPU服务器等高密度场景，降温效率提升50%）&lt;/td>
 &lt;td>算力中心标配，PUE可降至1.1以下&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>柜电分离&lt;/strong>&lt;/td>
 &lt;td>电费与机柜租费分开计费（避免捆绑加价）&lt;/td>
 &lt;td>大客户压降成本常用模式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>机柜托盘&lt;/strong>&lt;/td>
 &lt;td>承托服务器的滑轨支架（标准深度42U/48U）&lt;/td>
 &lt;td>影响服务器部署密度&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="三光缆与传输">&lt;strong>三、光缆与传输&lt;/strong>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>关联概念&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>出纤&lt;/strong>&lt;/td>
 &lt;td>从机房向外敷设的光纤（用户向运营商购买）&lt;/td>
 &lt;td>需明确纤芯数量和路由&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>进纤&lt;/strong>&lt;/td>
 &lt;td>接入机房的光纤资源（运营商提供）&lt;/td>
 &lt;td>通常含熔接配线服务&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>光交箱&lt;/strong>&lt;/td>
 &lt;td>光纤交接箱（室外线路与机房内线的转接点）&lt;/td>
 &lt;td>跳纤操作核心设备&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>波分&lt;/strong>&lt;/td>
 &lt;td>波分复用技术（单纤传输多路信号，提升带宽）&lt;/td>
 &lt;td>骨干网必用，单纤可达192*100Gbps&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>骨干网络&lt;/strong>&lt;/td>
 &lt;td>国家级/省级核心传输网（中继带宽≥100Gbps）&lt;/td>
 &lt;td>三大运营商自有拓扑&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>骨干出口局&lt;/strong>&lt;/td>
 &lt;td>骨干网在城市的互联节点（如北京三元桥、上海南汇）&lt;/td>
 &lt;td>多线BGP机房优先选址点&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>离岸出口&lt;/strong>&lt;/td>
 &lt;td>跨境网络出口（如香港、绥芬河节点）&lt;/td>
 &lt;td>免备案业务常用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>双路由&lt;/strong>&lt;/td>
 &lt;td>关键链路配置&lt;strong>物理分离的两条路径&lt;/strong>（防单点中断）&lt;/td>
 &lt;td>金融/政企强制要求&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="四工程与运维">&lt;strong>四、工程与运维&lt;/strong>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>操作要点&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>机房工勘&lt;/strong>&lt;/td>
 &lt;td>机房环境实地勘察（承重/电力/制冷/走线等）&lt;/td>
 &lt;td>上架前必备流程，输出《工勘报告》&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>割接&lt;/strong>&lt;/td>
 &lt;td>业务从旧系统迁移至新系统（常在凌晨进行，需备案）&lt;/td>
 &lt;td>风险操作！需备回滚方案&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>过点费&lt;/strong>&lt;/td>
 &lt;td>流量经过第三方网络节点的转接费用（如A→B需经C网，则向C付费）&lt;/td>
 &lt;td>专线报价需确认是否含过点费&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>配虚机&lt;/strong>&lt;/td>
 &lt;td>分配虚拟测试机（临时用于业务验证）&lt;/td>
 &lt;td>测试期免费提供&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>账期(T+2)&lt;/strong>&lt;/td>
 &lt;td>上月费用延后2月结算（如3月账期在5月支付）&lt;/td>
 &lt;td>运营商常用结算周期&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="五流媒体与算力">&lt;strong>五、流媒体与算力&lt;/strong>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>技术逻辑&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>拉流&lt;/strong>&lt;/td>
 &lt;td>客户端从服务器&lt;strong>拉取&lt;/strong>音视频流（如直播观众端行为）&lt;/td>
 &lt;td>与“推流”（主播端）对应&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>算力&lt;/strong>&lt;/td>
 &lt;td>数据处理能力（单位：TFLOPS/GPU卡）&lt;/td>
 &lt;td>1张A100≈20TFLOPS（FP32精度）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>包头系数&lt;/strong>&lt;/td>
 &lt;td>网络传输中IP/TCP包头占有效数据的比例（通常≈1.15-1.2）&lt;/td>
 &lt;td>计算带宽需求：实际带宽 = 业务流量 × 包头系数&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>调度&lt;/strong>&lt;/td>
 &lt;td>动态分配资源（如CDN将用户请求导至最优节点）&lt;/td>
 &lt;td>核心算法：基于时延/负载/成本&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="六端口与资源组合">&lt;strong>六、端口与资源组合&lt;/strong>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>术语&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>解释&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>成本策略&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>端口组合&lt;/strong>&lt;/td>
 &lt;td>多端口绑定套餐（如10个10G IDC端口+5个10G城域网端口）&lt;/td>
 &lt;td>提升可靠性，降低备份成本&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>第三方机房&lt;/strong>&lt;/td>
 &lt;td>非运营商自建机房（如万国数据、世纪互联）&lt;/td>
 &lt;td>议价空间大，但网络质量依赖运营商接入&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description></item><item><title>Centos7 升级gcc/glibc/make/cmake</title><link>https://www.wlstack.com/cn/blog/centos7-update-gcc-glibc/</link><pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/centos7-update-gcc-glibc/</guid><description>&lt;h1 id="前言">前言&lt;/h1>
&lt;p>眼瞅着Centos7的生命周期即将终结，系统默认的gcc/glibc版本又太低，而事实上，目前为止，因升级gcc/glibc导致的悲剧又依然不少见，特别是glibc从升级到宕机，几乎每隔一段时间就可以看见有网友嗝屁。所以，这里把这个基础操作步骤写出来，做个小记。&lt;/p>
&lt;p>&lt;strong>操作有风险，执行需谨慎&lt;/strong>&lt;/p>
&lt;p>本人也曾经因升级glibc出过&lt;strong>事故&lt;/strong>，后因算法需求，在多次练习后已是信手拈来，但是自己的升级过程不够规范和详细，所以在写本日记的时候，参考（ctrl+c/ctrl+v）了大神的这篇文章:
&lt;a href="https://chandrameenamohan.medium.com/building-nvidia-triton-inference-server-from-scratch-for-tensorflow-backend-873ef0a1f7f3">https://chandrameenamohan.medium.com/building-nvidia-triton-inference-server-from-scratch-for-tensorflow-backend-873ef0a1f7f3&lt;/a>
来总结此文。该文章的各项步骤均已经过本人亲自验证可行。&lt;/p>
&lt;h1 id="升级前的准备">升级前的准备&lt;/h1>
&lt;ol start="0">
&lt;li>验证当前版本：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>gcc -v
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ldd --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol>
&lt;li>确定升级的版本
gcc4.8.5&amp;ndash;&amp;gt;gcc9.3.0
glibc2.17&amp;ndash;&amp;gt;glibc2.29&lt;/li>
&lt;li>升级路径&lt;/li>
&lt;/ol>
&lt;h1 id="升级和验证">升级和验证&lt;/h1>
&lt;ol>
&lt;li>先安装依赖
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>包名&lt;/th>
 &lt;th>用途&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>wget&lt;/td>
 &lt;td>用于从网络下载文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc&lt;/td>
 &lt;td>C/C++ 编译器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc-c++&lt;/td>
 &lt;td>C++ 编译器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>zlib-devel&lt;/td>
 &lt;td>zlib 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libcurl-devel&lt;/td>
 &lt;td>libcurl 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>openssl-devel&lt;/td>
 &lt;td>OpenSSL 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>bzip2-devel&lt;/td>
 &lt;td>bzip2 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gmp-devel.x86_64&lt;/td>
 &lt;td>GNU Multiprecision Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>mpfr-devel.x86_64&lt;/td>
 &lt;td>MPFR Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libmpc-devel.x86_64&lt;/td>
 &lt;td>MPC Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libSM-devel.x86_64&lt;/td>
 &lt;td>X.Org SM 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libxml2-devel&lt;/td>
 &lt;td>libxml2 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc-gfortran.x86_64&lt;/td>
 &lt;td>Fortran 编译器（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>autoconf&lt;/td>
 &lt;td>自动化配置脚本生成器，用于生成 Makefile 文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>automake&lt;/td>
 &lt;td>自动化 Makefile 生成器，用于生成 Makefile.in 文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>boost-devel&lt;/td>
 &lt;td>Boost 库的开发包，用于开发 C++ 程序&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>make&lt;/td>
 &lt;td>构建工具，用于自动化软件编译、安装、测试等工作&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>patchelf&lt;/td>
 &lt;td>用于修改 ELF 文件的符号表和动态链接库依赖项&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>bison&lt;/td>
 &lt;td>语法分析器生成器，用于生成 C 语言语法分析器&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ol>
&lt;p>大概是这些依赖，yum 安装即可，建议在yum安装这些依赖之前，都安装一下epel库。&lt;/p></description></item><item><title>debian12 编译frankenphp</title><link>https://www.wlstack.com/cn/blog/debian12-%E7%BC%96%E8%AF%91frankenphp/</link><pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/debian12-%E7%BC%96%E8%AF%91frankenphp/</guid><description>&lt;h1 id="前言">前言&lt;/h1>
&lt;p>FrankenPHP 是建立在 Caddy Web 服务器之上的现代 PHP 应用程序服务器。&lt;/p>
&lt;p>FrankenPHP 凭借其令人惊叹的功能为你的 PHP 应用程序提供了超能力：早期提示、worker 模式、实时功能、自动 HTTPS、HTTP/2 和 HTTP/3 支持……&lt;/p>
&lt;p>FrankenPHP 可与任何 PHP 应用程序一起使用，并且由于提供了与 worker 模式的集成，使你的 Symfony 和 Laravel 项目比以往任何时候都更快。&lt;/p>
&lt;p>FrankenPHP 也可以用作独立的 Go 库，将 PHP 嵌入到任何使用 net/http 的应用程序中。&lt;/p>
&lt;p>&lt;strong>本质来说，frankenphp是通过cgo来跑php的！&lt;/strong>&lt;/p>
&lt;p>至于快/慢问题，目测是比fast-cgi/php-fpm快的。&lt;/p>
&lt;h1 id="编译前准备">编译前准备&lt;/h1>
&lt;ol start="0">
&lt;li>安装必要的依赖&lt;/li>
&lt;/ol>
&lt;p>apt-get install libbrotli-dev \
libsnmp-dev &lt;br>
libxml2-dev &lt;br>
libsqlite-dev &lt;br>
libsnmp-dev &lt;br>
libxml2-dev &lt;br>
libsqlite3-dev &lt;br>
libzstd-dev &lt;br>
liblz4-dev &lt;br>
libjpeg-dev &lt;br>
libpng-dev &lt;br>
libpcre3-dev &lt;br>
libmcrypt-dev &lt;br>
libgd-dev &lt;br>
libbz2-dev &lt;br>
libonig-dev &lt;br>
libpq-dev &lt;br>
libreadline-dev &lt;br>
libsodium-dev&lt;/p>
&lt;ol>
&lt;li>编译php&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./configure --prefix&lt;span style="color:#f92672">=&lt;/span>/usr --libdir&lt;span style="color:#f92672">=&lt;/span>/usr/local/lib --enable-embed&lt;span style="color:#f92672">=&lt;/span>static --enable-static --enable-zts --disable-shared --disable-cgi --disable-fpm --disable-phpdbg --with-config-file-path&lt;span style="color:#f92672">=&lt;/span>/etc/frankenphp --with-config-file-scan-dir&lt;span style="color:#f92672">=&lt;/span>/etc/frankenphp/php.d --enable-zend-max-execution-timers --with-snmp --enable-bcmath --enable-mbstring --enable-ctype --enable-dom --enable-session --enable-simplexml --enable-sockets --enable-tokenizer --enable-xml --enable-xmlreader --enable-xmlwriter --enable-soap --enable-opcache --enable-pdo --with-pdo-mysql --with-pdo-pgsql --with-pgsql --with-zip --with-curl --with-zlib --with-readline --with-iconv --with-libxml --with-openssl --with-bz2 --enable-gd --with-jpeg --with-webp --with-freetype --with-sodium --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-pcntl --enable-shmop --enable-phar
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make -j &lt;span style="color:#66d9ef">$(&lt;/span>nproc&lt;span style="color:#66d9ef">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make install
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>** 注意，我这里启用了一些扩展，比如snmp，我寄望是一些网络监控服务，诸如cacti/zabbix/librenms也能过痛过这个方式来跑； **&lt;/p></description></item><item><title>nginx 1.25.0 pagespeed 安装</title><link>https://www.wlstack.com/cn/blog/nginx-pagespeed-install/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/nginx-pagespeed-install/</guid><description>&lt;h1 id="前言">前言&lt;/h1>
&lt;p>遵从来自20世纪的呼唤，最近重新开始研究单体应用的极致的性能优化，在web应用加速来说，google和nginx曾经一度引领风骚，pagespeed+nginx的组合，一度成就了yottta这样被google花了5亿美金收购的公司，号称对web应用，实现了页面精简、html/css压缩，动态加速等。而这样的东西自从2018年后，似乎突然就不被重视了。
随着云和微服务的兴起，应用被拆分得越来越细，以至于，不再有人care在http1.0/1.1时代的C10K、C100K这样的挑战了。
性能不够，机器来凑，尤其是，使用云和k8s之后，没有了直接的硬件投入，起个服务和应用，api调用一下，鼠标点一点，几百上千的虚拟机或pod就起来了，而容器则动则几万几十万个，而这样的情况，短时间的成本可能已经在“人比机器贵”的黄金时代来说，不再引人注目了。长此以往，特别到了疫情后，大家的口袋都没钱的时候，才发现，原来不知不觉，在云上已经花了这么多钱，所以，鼓吹下云也好，继续上云也罢，理念的东西都不重要，重要的，还是经济效益，于是，单体应用的性能，理应重新得到重视。
而这时候，我才发现，nginx似乎也不再受欢迎，好多人都要换到caddyserver去，pagespeed更是几乎没什么人用了,连明日黄花，可能都算不上了。。毕竟现代前端框架，自身在build的时候，已经是各种裁剪优化了,甚至于，倾向于搞ssr（server side render）这样的歪门邪道（当然，一段时间是因为框架对搜索引擎过于不友好，搞出来的web，搜索引擎都收录不了。。哪来的用户，哪来的业务），服务器的计算资源，始终是有限的，而客户端，却是随着用户数增长而增长&amp;hellip;最主要的一点，服务器，是需要付费的，而用户侧的算力，是免费的.
好了，废话说了很多，很显然，在这个时候，来折腾这些一度落寞的玩意，可能会费时费力。
（有人会叫你去白嫖比人打包好的docker镜像或deb包），而我决定自力更生，丰衣足食。&lt;/p>
&lt;h1 id="安装环境">安装环境&lt;/h1>
&lt;ol>
&lt;li>OS:Centos 7.9
GCC:4.8.5
NGINX:1.25.0
PAGESPEED(NPS):1.13.35.2&lt;/li>
&lt;li>依赖：
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>包名&lt;/th>
 &lt;th>用途&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>wget&lt;/td>
 &lt;td>用于从网络下载文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc&lt;/td>
 &lt;td>C/C++ 编译器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc-c++&lt;/td>
 &lt;td>C++ 编译器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>zlib-devel&lt;/td>
 &lt;td>zlib 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libcurl-devel&lt;/td>
 &lt;td>libcurl 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>openssl-devel&lt;/td>
 &lt;td>OpenSSL 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>bzip2-devel&lt;/td>
 &lt;td>bzip2 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gmp-devel.x86_64&lt;/td>
 &lt;td>GNU Multiprecision Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>mpfr-devel.x86_64&lt;/td>
 &lt;td>MPFR Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libmpc-devel.x86_64&lt;/td>
 &lt;td>MPC Library 开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libSM-devel.x86_64&lt;/td>
 &lt;td>X.Org SM 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libxml2-devel&lt;/td>
 &lt;td>libxml2 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gcc-gfortran.x86_64&lt;/td>
 &lt;td>Fortran 编译器（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libjpeg-turbo-devel.x86_64&lt;/td>
 &lt;td>libjpeg-turbo 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>openjpeg-devel&lt;/td>
 &lt;td>OpenJPEG 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libpng12-devel&lt;/td>
 &lt;td>libpng 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libtiff-devel&lt;/td>
 &lt;td>libtiff 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cmake3.x86_64&lt;/td>
 &lt;td>CMake 3 编译系统（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libtools-devel&lt;/td>
 &lt;td>libtools 开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>yum-utils&lt;/td>
 &lt;td>yum 实用工具&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libffi-devel&lt;/td>
 &lt;td>libffi 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>jemalloc-devel.x86_64&lt;/td>
 &lt;td>jemalloc 内存分配器开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>jasper-devel&lt;/td>
 &lt;td>JasPer 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>tbb-devel&lt;/td>
 &lt;td>Threading Building Blocks 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libdc1394-devel&lt;/td>
 &lt;td>libdc1394 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gstreamer-devel.x86_64&lt;/td>
 &lt;td>GStreamer 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>blosc-devel&lt;/td>
 &lt;td>Blosc 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libaec-devel&lt;/td>
 &lt;td>libaec 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>brotli-devel&lt;/td>
 &lt;td>Brotli 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>giflib-devel&lt;/td>
 &lt;td>giflib 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>gtk2-devel&lt;/td>
 &lt;td>GTK+ 2 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libaio-devel&lt;/td>
 &lt;td>libaio 库开发库&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>libsqlite3x-devel.x86_64&lt;/td>
 &lt;td>libsqlite3x 库开发库（x86_64）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>make&lt;/td>
 &lt;td>构建工具&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>eigen3-devel&lt;/td>
 &lt;td>Eigen3 线性代数库开发库&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ol>
&lt;h1 id="安装">安装&lt;/h1>
&lt;h2 id="安装依赖">安装依赖&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>yum install epel-release.noarch -y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>yum install wget gcc gcc-c++ zlib-devel libcurl-devel openssl-devel bzip2-devel gmp-devel.x86_64 mpfr-devel.x86_64 libmpc-devel.x86_64 libSM-devel.x86_64 libxml2-devel gcc-gfortran.x86_64 libjpeg-turbo-devel.x86_64 openjpeg-devel.x86_64 libpng12-devel.x86_64 libtiff-devel cmake3.x86_64 libtool-devel yum-utils libffi-devel jemalloc-devel.x86_64 jasper-devel.x86_64 tbb-devel libdc1394-devel gstreamer-devel.x86_64 blosc-devel libaec-devel brotli-devel.x86_64 giflib-devel.x86_64 gtk2-devel libaio-devel libsqlite3x-devel.x86_64 make eigen3-devel libpcre3-devel
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="下载安装包并解压">下载安装包并解压：&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span> wget -O nps.zip https://github.com/apache/incubator-pagespeed-ngx/archive/71e24c1c47113acb5924d8cb523d572b376e9dd0.zip &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> unzip nps
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget http://nginx.org/download/nginx-1.25.0.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wget -O psol.tar.gz https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="nginx编译注意点">nginx编译注意点&lt;/h2>
&lt;p>&lt;strong>LD_LIBRARY_PATH=../incubator-pagespeed-ngx-${PAGESPEED_VERSION}/usr/lib:/usr/lib 指定LD_LIBRARY_PATH到incubator-pagespeed-ngx-71e24c1c47113acb5924d8cb523d572b376e9dd0，以便编译pagespeed，71e24c1c47113acb5924d8cb523d572b376e9dd0即为上文下载的对应版本的pagespeed版本解压后的目录&lt;/strong>&lt;/p></description></item><item><title>Centos7 cacti spine php74 nginx安装配置</title><link>https://www.wlstack.com/cn/blog/centos7-cacti-spine-php-mysql-nginx/</link><pubDate>Fri, 22 Sep 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/centos7-cacti-spine-php-mysql-nginx/</guid><description>&lt;h1 id="cacti是什么">cacti是什么&lt;/h1>
&lt;p>Cacti是一款功能完整的网络图形化解决方案，Cacti旨在利用RRDtool的数据存储以及图形化功能来给广大安全研究人员提供以下功能性帮助：&lt;/p>
&lt;ol>
&lt;li>远程和本地数据收集；&lt;/li>
&lt;li>设备扫描与发现；&lt;/li>
&lt;li>设备与图形创建自动化；&lt;/li>
&lt;li>自定义数据收集方法；&lt;/li>
&lt;li>用户、组和域访问控制；&lt;/li>
&lt;/ol>
&lt;p>所有的这些功能都封装在一个直观并易于使用的用户界面之中，而这种特性对于局域网安装配置以及包含数千台设备的复杂网络都有实际意义。&lt;/p>
&lt;p>本项目是Ian Berry于2000年初创建的一个高中研究项目，但目前已经发展成为上千万公司以及网络安全爱好者用于监控和管理他们企业网络以及数据中心的最佳解决方案了。&lt;/p>
&lt;h1 id="centos-7-安装-cacti">Centos 7 安装 cacti&lt;/h1>
&lt;h2 id="安装基础依赖和数据库">安装基础依赖和数据库&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>基础依赖：&lt;/strong>
先安装对应的yum repo，避免部分依赖rpm包找不到&lt;/li>
&lt;/ol>
&lt;pre tabindex="0">&lt;code>yum install epel-release.noarch -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
&lt;/code>&lt;/pre>&lt;p>注意，这里使用了基于remi库封装的php rpm包，所以在后续使用的时候，需要考虑remi库 rpm包安装的路径问题，否则可能出现cmd.php/poller.php运行失败的问题。
接下来安装基础库：&lt;/p>
&lt;pre tabindex="0">&lt;code>yum install wget gcc gcc-c++ zlib-devel wget libcurl-devel openssl-devel bzip2-devel gmp-devel.x86_64 mpfr-devel.x86_64 libmpc-devel.x86_64 libSM-devel.x86_64 libxml2-devel gcc-gfortran.x86_64 bzip2-devel libjpeg-turbo-devel.x86_64 openjpeg-devel.x86_64 libpng12-devel.x86_64 libtiff-devel cmake3.x86_64 autoconf automake libtool yum-utils libSM-devel.x86_64 bzip2-devel libffi-devel jemalloc-devel.x86_64 gperftools-devel.x86_64 jasper-devel.x86_64 libxml2-devel tbb-devel libdc1394-devel gstreamer-devel.x86_64 blosc-devel libaec-devel brotli-devel.x86_64 giflib-devel.x86_64 gtk2-devel libaio-devel libsqlite3x-devel.x86_64 gperftools-devel.x86_64 make eigen3-devel ntp ntpdate perl-devel perl-CPAN perl-YAML fontconfig ttmkfdir -y
&lt;/code>&lt;/pre>&lt;p>看得出来，我们安装了很多图像图像乃至视频的包。如果觉得多余，可以把gstream相关不安装，不过ntp/ttmk这些时间、字体相关的，还是装一下。
2. 安装数据库
然后我们来安装数据库服务器。这里我们选择安装mysql5.7。&lt;/p></description></item><item><title>librenms部署到cloudflare</title><link>https://www.wlstack.com/cn/blog/librenms-cloudflare/</link><pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/librenms-cloudflare/</guid><description>&lt;h1 id="librenms是什么">Librenms是什么&lt;/h1>
&lt;p>LibreNMS是一个开源的网络监控和自动化工具。它可以帮助管理员监控和管理他们的网络设备、服务器和应用程序。LibreNMS提供了一个综合的平台，用于监控网络设备的性能、可用性和健康状况，以及生成报告和警报。它支持SNMP（Simple Network Management Protocol）来收集设备的指标和状态信息，并提供了一个用户友好的Web界面，供管理员查看和分析监控数据。&lt;/p>
&lt;p>LibreNMS具有许多功能，包括实时图表和可视化，用于显示网络设备的性能和趋势，以及提供历史数据的存档。它支持自动发现网络设备和应用程序，并提供基于规则的警报和通知功能，以便管理员在出现问题时及时采取行动。此外，LibreNMS还提供了强大的API，可以与其他系统和工具集成，以实现自动化和定制化的监控和管理任务。&lt;/p>
&lt;h1 id="librenms的架构">librenms的架构&lt;/h1>
&lt;p>LibreNMS是使用PHP语言开发的，基于Laravel框架构建的网络监控系统。Laravel是一个流行的开源PHP框架，它提供了许多工具和组件，用于快速开发高质量的Web应用程序。&lt;/p>
&lt;p>使用Laravel作为开发框架，LibreNMS能够充分利用Laravel提供的功能和特性，包括路由管理、数据库抽象层、会话管理、认证和授权、模板引擎等。这些功能使得LibreNMS的开发过程更加高效、可维护和可扩展&lt;/p>
&lt;h1 id="为什么部署到cloudflare">为什么部署到cloudflare&lt;/h1>
&lt;p>Cloudflare 是一家提供内容分发网络服务、DDoS 保护、互联网安全性和分布式域名服务器服务的公司。其服务旨在保护和加速任何互联网应用程序，而无需更改应用程序的代码。以下是 Cloudflare 的主要功能：&lt;/p>
&lt;p>内容分发网络 (CDN): Cloudflare 的 CDN 通过其全球数据中心网络存储网站的静态内容，从而使访问者能够从最近的数据中心获取内容，加速页面加载速度。&lt;/p>
&lt;p>DDoS 保护: Cloudflare 可以识别并吸收大量的请求，从而保护网站不受恶意攻击。&lt;/p>
&lt;p>Web 安全性: Cloudflare 提供 Web 应用程序防火墙 (WAF)、安全套接字层 (SSL) 加密等功能，以增强网站的安全性。&lt;/p>
&lt;p>智能路由: Cloudflare 的 Argo Smart Routing 能够确保用户的请求通过最快的路径到达目的地。&lt;/p>
&lt;h1 id="部署到cloudflare的优势">部署到cloudflare的优势：&lt;/h1>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>安全性:&lt;/strong> LibreNMS 作为一个网络管理和监控工具，可能会面临各种网络攻击，特别是 DDoS 攻击。Cloudflare 可以为 LibreNMS 提供额外的安全层，保护它免受这些攻击。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>可访问性:&lt;/strong> 使用 Cloudflare，即使 LibreNMS 的主服务器出现问题，用户仍然可以通过 Cloudflare 的缓存数据访问 LibreNMS 的某些信息。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>性能:&lt;/strong> Cloudflare 的 CDN 可以加速 LibreNMS 的在全球范围内的访问，特别是当你拥有一个跨地域的协作或合作的时候，确保你和你的合作伙伴能够快速访问LibrenNMS以获得网络用量和简况状况显得尤为重要。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>简化配置&lt;/strong>: 对于那些不熟悉web服务安全配置的用户，使用 Cloudflare 可以简化 LibreNMS 的安全和性能优化配置，确保LibreNMS的相对安全性和管理的便捷性。&lt;/p></description></item><item><title>内核优化参数之2-网友的内核引导参数</title><link>https://www.wlstack.com/cn/blog/%E5%86%85%E6%A0%B8%E4%BC%98%E5%8C%96%E5%8F%82%E6%95%B0%E8%AE%B0%E5%BD%95%E4%B9%8B2-%E7%BD%91%E5%8F%8B%E7%9A%84%E5%86%85%E6%A0%B8%E5%BC%95%E5%AF%BC%E5%8F%82%E6%95%B0/</link><pubDate>Fri, 10 Mar 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/%E5%86%85%E6%A0%B8%E4%BC%98%E5%8C%96%E5%8F%82%E6%95%B0%E8%AE%B0%E5%BD%95%E4%B9%8B2-%E7%BD%91%E5%8F%8B%E7%9A%84%E5%86%85%E6%A0%B8%E5%BC%95%E5%AF%BC%E5%8F%82%E6%95%B0/</guid><description>&lt;h1 id="参数说明">参数说明&lt;/h1>
&lt;p>Linux内核参数的配置对于性能的影响是巨大的。
可以通过修改/etc/sysctl.conf文件来调整。下面是每个参数的简要说明：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>参数&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>loglevel=3&lt;/td>
 &lt;td>设置内核打印级别为3&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>selinux=0&lt;/td>
 &lt;td>禁用 SELinux&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>audit=1&lt;/td>
 &lt;td>启用系统审计功能&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rd.systemd.show_status=auto&lt;/td>
 &lt;td>启用 Systemd 系统启动状态&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rd.udev.log_priority=3&lt;/td>
 &lt;td>设置 udev 日志级别为3&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>systemd.unified_cgroup_hierarchy=false&lt;/td>
 &lt;td>禁用 Systemd 统一 cgroup 层级&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>systemd.legacy_systemd_cgroup_controller=false&lt;/td>
 &lt;td>禁用旧版 Systemd cgroup 控制器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>scsi_mod.use_blk_mq=1&lt;/td>
 &lt;td>使用多队列 I/O 调度器（blk-mq）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>crashkernel=384M-2G:64M,2G-:128M&lt;/td>
 &lt;td>为内核启动设置的保留物理内存大小&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>workqueue.power_efficient=0&lt;/td>
 &lt;td>禁用内核 power_efficient 工作队列优化&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>domain init_on_free=0, init_on_alloc=0&lt;/td>
 &lt;td>禁用 NUMA 内存分配初始化&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cma=128M&lt;/td>
 &lt;td>设置 Contiguous Memory Allocator（CMA）大小&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>vsyscall=none&lt;/td>
 &lt;td>禁用 vDSO/vsyscall&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nosoftlockup&lt;/td>
 &lt;td>禁用软锁定检测&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>mce=off&lt;/td>
 &lt;td>禁用机器检查异常（MCE）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>threadirqs&lt;/td>
 &lt;td>启用中断线程（threaded interrupt）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>noresume&lt;/td>
 &lt;td>禁用系统挂起功能&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nmi_watchdog=0&lt;/td>
 &lt;td>禁用 NMI 监视器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>vt.cur_default=50&lt;/td>
 &lt;td>设置终端 VT 缓冲区大小&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>transparent_hugepage=never&lt;/td>
 &lt;td>禁用透明大页（Transparent Huge Pages，THP）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cgroup_enable=memory&lt;/td>
 &lt;td>启用 cgroup 内存限制&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cgroup_memory=nokmem&lt;/td>
 &lt;td>禁用 KSM 和 THP&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>swapaccount=1&lt;/td>
 &lt;td>启用交换空间统计&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nf_conntrack.acct=0&lt;/td>
 &lt;td>禁用 netfilter 连接追踪计数&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>log_buf_len=2M&lt;/td>
 &lt;td>设置内核日志缓冲区大小&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>intel_pstate=disable&lt;/td>
 &lt;td>禁用 Intel P-state 驱动&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>processor.max_cstate=0&lt;/td>
 &lt;td>禁用处理器 C 状态&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>intel_idle.max_cstate=0&lt;/td>
 &lt;td>禁用 Intel Idle&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>thermal.off=1&lt;/td>
 &lt;td>禁用温度传感器&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pci=realloc&lt;/td>
 &lt;td>启用 PCI 设备热插拔支持&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>pcie_aspm=off&lt;/td>
 &lt;td>禁用 PCIe ASPM 支持&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cpufreq.off=1&lt;/td>
 &lt;td>禁用 CPU 频率调节功能&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>idle=halt&lt;/td>
 &lt;td>使用 halt 代替 idle&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ifnames=0&lt;/td>
 &lt;td>禁用预测命名接口&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>biosdevname=0&lt;/td>
 &lt;td>禁用预测 BIOS 命名接口&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>mitigations=off&lt;/td>
 &lt;td>禁用针对特定 CPU 安全漏洞的补丁&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>noibrs&lt;/td>
 &lt;td>禁用间接分支预测限制（Indirect Branch Restricted Speculation）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nopti&lt;/td>
 &lt;td>禁用特权级别转换限制（Privilege Level Translation Tables）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>l1tf=off&lt;/td>
 &lt;td>禁用 L1 终端失效漏洞（L1 Terminal Fault）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nomodeset&lt;/td>
 &lt;td>禁用内核模式设置&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nospec_store_bypass_disable&lt;/td>
 &lt;td>禁用处理器存储旁路漏洞的修复&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>noibpb&lt;/td>
 &lt;td>禁用分支预测条目保护（Indirect Branch Prediction Barrier）。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>spectre_v2_user=off&lt;/td>
 &lt;td>禁用用户空间的漏洞修复&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>spectre_v2=off&lt;/td>
 &lt;td>禁用针对 Spectre Variant 2 漏洞的修复&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kvm-intel.vmentry_l1d_flush=never&lt;/td>
 &lt;td>禁用 L1D Flush 特性，减少 L1D Cache 映射切换的开销&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>no_timer_check&lt;/td>
 &lt;td>禁用内核检查定时器是否过期，可减少部分系统调用的开销&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>noreplace-smp&lt;/td>
 &lt;td>禁用热插拔 CPU&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kvm-intel.nested=1&lt;/td>
 &lt;td>启用 KVM Nested 虚拟化&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>nosync&lt;/td>
 &lt;td>禁用 CPU 忙等待&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>iommu.strict=0&lt;/td>
 &lt;td>禁用 IOMMU 严格模式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>intel_iommu=on&lt;/td>
 &lt;td>启用 Intel VT-d IOMMU&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>amd_iommu=on&lt;/td>
 &lt;td>启用 AMD IOMMU&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>cryptomgr.notests&lt;/td>
 &lt;td>禁用内核加密 API 的测试模式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rcu_nocbs=0-64&lt;/td>
 &lt;td>设置 RCU 操作不会影响 CPU 0 到 CPU 64 之间的性能&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rcupdate.rcu_expedited=1&lt;/td>
 &lt;td>优先处理 RCU 更新操作，以减少延迟&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rcutree.kthread_prio=2&lt;/td>
 &lt;td>设置 RCU 的内核线程的优先级为 2&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>skew_tick=1&lt;/td>
 &lt;td>启用 CPU 偏移时钟&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h1 id="参考示例">参考示例&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>loglevel&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">3&lt;/span> selinux&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> audit&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> rd.systemd.show_status&lt;span style="color:#f92672">=&lt;/span>auto rd.udev.log_priority&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">3&lt;/span> systemd.unified_cgroup_hierarchy&lt;span style="color:#f92672">=&lt;/span>false systemd.legacy_systemd_cgroup_controller&lt;span style="color:#f92672">=&lt;/span>false scsi_mod.use_blk_mq&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> crashkernel&lt;span style="color:#f92672">=&lt;/span>384M-2G:64M,2G-:128M workqueue.power_efficient&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> domain init_on_free&lt;span style="color:#f92672">=&lt;/span>0, init_on_alloc&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> cma&lt;span style="color:#f92672">=&lt;/span>128M vsyscall&lt;span style="color:#f92672">=&lt;/span>none nosoftlockup mce&lt;span style="color:#f92672">=&lt;/span>off threadirqs noresume nmi_watchdog&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> vt.cur_default&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">50&lt;/span> transparent_hugepage&lt;span style="color:#f92672">=&lt;/span>never cgroup_enable&lt;span style="color:#f92672">=&lt;/span>memory cgroup_memory&lt;span style="color:#f92672">=&lt;/span>nokmem swapaccount&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> nf_conntrack.acct&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> log_buf_len&lt;span style="color:#f92672">=&lt;/span>2M intel_pstate&lt;span style="color:#f92672">=&lt;/span>disable processor.max_cstate&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> intel_idle.max_cstate&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> thermal.off&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> pci&lt;span style="color:#f92672">=&lt;/span>realloc pcie_aspm&lt;span style="color:#f92672">=&lt;/span>off cpufreq.off&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> idle&lt;span style="color:#f92672">=&lt;/span>halt net.ifnames&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> biosdevname&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> mitigations&lt;span style="color:#f92672">=&lt;/span>off noibrs nopti l1tf&lt;span style="color:#f92672">=&lt;/span>off nomodeset nospec_store_bypass_disable noibpb spectre_v2_user&lt;span style="color:#f92672">=&lt;/span>off spectre_v2&lt;span style="color:#f92672">=&lt;/span>off kvm-intel.vmentry_l1d_flush&lt;span style="color:#f92672">=&lt;/span>never no_timer_check noreplace-smp kvm-intel.nested&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> nosync iommu.strict&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> intel_iommu&lt;span style="color:#f92672">=&lt;/span>on amd_iommu&lt;span style="color:#f92672">=&lt;/span>on cryptomgr.notests rcu_nocbs&lt;span style="color:#f92672">=&lt;/span>0-64 rcupdate.rcu_expedited&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> rcutree.kthread_prio&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">2&lt;/span> skew_tick&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>内核优化参数记录</title><link>https://www.wlstack.com/cn/blog/%E5%86%85%E6%A0%B8%E4%BC%98%E5%8C%96%E5%8F%82%E6%95%B0%E8%AE%B0%E5%BD%95/</link><pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/%E5%86%85%E6%A0%B8%E4%BC%98%E5%8C%96%E5%8F%82%E6%95%B0%E8%AE%B0%E5%BD%95/</guid><description>&lt;h1 id="参数说明">参数说明&lt;/h1>
&lt;p>Linux内核参数的配置对于性能的影响是巨大的。
可以通过修改/etc/sysctl.conf文件来调整。下面是每个参数的简要说明：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>参数名&lt;/th>
 &lt;th>参数值&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>建议&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>vm.swappiness&lt;/td>
 &lt;td>0&lt;/td>
 &lt;td>控制内核将哪些页面交换到磁盘以释放内存。&lt;/td>
 &lt;td>如果您的系统拥有足够的内存容量，建议将这个参数的值设置为 0，以减少交换分区的使用。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>vm.panic_on_oom&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制系统在内存不足时是否会宕机。&lt;/td>
 &lt;td>如果您的系统拥有足够的内存容量，建议将这个参数的值设置为 1，以确保系统不会因为内存不足而出现问题。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kernel.panic&lt;/td>
 &lt;td>10&lt;/td>
 &lt;td>控制系统在内核崩溃时重新启动的时间。&lt;/td>
 &lt;td>如果您的系统存在内核崩溃的问题，建议将这个参数的值设置得较小，以便快速重新启动系统。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>fs.file-max&lt;/td>
 &lt;td>65536&lt;/td>
 &lt;td>控制内核允许打开的文件数的最大数量。&lt;/td>
 &lt;td>如果您的应用程序需要大量的文件句柄，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kernel.sysrq&lt;/td>
 &lt;td>0&lt;/td>
 &lt;td>控制内核是否允许使用 SysRq 键来执行紧急操作。&lt;/td>
 &lt;td>如果您不需要使用 SysRq 键，建议将这个参数的值设置为 0，以增加系统的安全性。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kernel.printk&lt;/td>
 &lt;td>5 4 1 7&lt;/td>
 &lt;td>控制内核消息的打印级别。&lt;/td>
 &lt;td>如果您不需要详细的内核消息，建议将这个参数的值设置为 3 4 1 3，以减少内核消息的频率和级别。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kernel.softlockup_panic&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制系统在发生软锁定时是否宕机。&lt;/td>
 &lt;td>如果您的系统存在软锁定的问题，建议将这个参数的值设置为 1，以便快速重新启动系统。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.conf.default.rp_filter&lt;/td>
 &lt;td>0&lt;/td>
 &lt;td>控制反向路径检测。&lt;/td>
 &lt;td>如果您的系统需要进行反向路径检测，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.ip_forward&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制 IP 转发功能。&lt;/td>
 &lt;td>如果您的系统需要使用 IP 转发功能，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.core.netdev_max_backlog&lt;/td>
 &lt;td>40960&lt;/td>
 &lt;td>控制网络设备接收队列的长度。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.core.optmem_max&lt;/td>
 &lt;td>921600&lt;/td>
 &lt;td>控制内核套接字缓冲区的最大大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.core.rmem_default&lt;/td>
 &lt;td>2097152&lt;/td>
 &lt;td>控制内核套接字接收缓冲区的默认大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.core.rmem_max&lt;/td>
 &lt;td>8388608&lt;/td>
 &lt;td>内核套接字接收缓冲区的最大大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_rmem&lt;/td>
 &lt;td>4096 87380 8388608&lt;/td>
 &lt;td>内核套接字 TCP 接收缓冲区的最小、默认、最大大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这些参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_wmem&lt;/td>
 &lt;td>4096 87380 8388608&lt;/td>
 &lt;td>内核套接字 TCP 发送缓冲区的最小、默认、最大大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这些参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.udp_mem&lt;/td>
 &lt;td>8388608 12582912 16777216&lt;/td>
 &lt;td>内核套接字 UDP 缓冲区的最小、默认、最大大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这些参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.udp_rmem_min&lt;/td>
 &lt;td>65536&lt;/td>
 &lt;td>内核套接字 UDP 接收缓冲区的最小大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.udp_wmem_min&lt;/td>
 &lt;td>65536&lt;/td>
 &lt;td>内核套接字 UDP 发送缓冲区的最小大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_no_metrics_save&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否保存 TCP 的性能指标。&lt;/td>
 &lt;td>如果您不需要保存 TCP 的性能指标，建议将这个参数的值设置为 1，以减少系统的 I/O 负载。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.icmp_echo_ignore_broadcasts&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否响应广播地址的 ICMP 请求。&lt;/td>
 &lt;td>如果您不需要响应广播地址的 ICMP 请求，建议将这个参数的值设置为 1，以增加系统的安全性。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.ipfrag_high_thresh&lt;/td>
 &lt;td>5242880&lt;/td>
 &lt;td>控制内核 IP 分片的高阈值。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.ipfrag_low_thresh&lt;/td>
 &lt;td>2932160&lt;/td>
 &lt;td>控制内核 IP 分片的低阈值。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.ip_local_port_range&lt;/td>
 &lt;td>1025 65530&lt;/td>
 &lt;td>控制内核分配本地端口的范围。&lt;/td>
 &lt;td>如果您的应用程序需要大量的本地端口，建议增加这些参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.neigh.default.gc_thresh1&lt;/td>
 &lt;td>8192&lt;/td>
 &lt;td>控制内核网络邻居表的 GC 阈值。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。｜&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.neigh.default.gc_thresh2&lt;/td>
 &lt;td>4092&lt;/td>
 &lt;td>控制内核网络邻居表的 GC 阈值。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.neigh.default.gc_thresh3&lt;/td>
 &lt;td>8192&lt;/td>
 &lt;td>控制内核网络邻居表的 GC 阈值。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_fin_timeout&lt;/td>
 &lt;td>10&lt;/td>
 &lt;td>控制内核 TCP 连接终止时的超时时间。&lt;/td>
 &lt;td>如果您的应用程序需要快速地建立和终止 TCP 连接，建议将这个参数的值设置为较小的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_keepalive_time&lt;/td>
 &lt;td>3600&lt;/td>
 &lt;td>控制内核 TCP 连接的空闲时间。&lt;/td>
 &lt;td>如果您的应用程序需要保持 TCP 连接的长时间空闲状态，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_max_syn_backlog&lt;/td>
 &lt;td>40960&lt;/td>
 &lt;td>控制内核 TCP SYN 队列的最大长度。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_max_tw_buckets&lt;/td>
 &lt;td>1440000&lt;/td>
 &lt;td>控制内核 TCP TIME-WAIT 队列的最大长度。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_rmem&lt;/td>
 &lt;td>92160 6000000 17476000&lt;/td>
 &lt;td>内核套接字 TCP 接收缓冲区的最小、默认、最大大小。&lt;/td>
 &lt;td>如果您的系统的网络流量较大，建议增加这些参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_sack&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否启用 TCP SACK。&lt;/td>
 &lt;td>如果您的应用程序需要使用 TCP SACK，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_synack_retries&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>控制内核 TCP 连接建立时的重试次数。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_syncookies&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否启用 TCP SYN Cookie。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_syn_retries&lt;/td>
 &lt;td>2&lt;/td>
 &lt;td>控制内核 TCP 连接建立时的重试次数。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_tw_recycle&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否启用 TCP TIME-WAIT 回收机制。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_tw_reuse&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否启用 TCP TIME-WAIT 重用机制。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_window_scaling&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否启用 TCP 窗口扩展机制。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.ipv4.tcp_timestamps&lt;/td>
 &lt;td>1&lt;/td>
 &lt;td>控制内核是否启用 TCP 时间戳机制。&lt;/td>
 &lt;td>如果您的应用程序需要使用 TCP 时间戳机制，建议将这个参数的值设置为 1。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>net.core.somaxconn&lt;/td>
 &lt;td>65535&lt;/td>
 &lt;td>内核套接字连接队列的最大长度。&lt;/td>
 &lt;td>如果您的系统需要处理大量的 TCP 连接请求，建议增加这个参数的值。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h1 id="参考示例">参考示例&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>vm.swappiness &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>vm.panic_on_oom&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kernel.panic&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fs.file-max &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">65536&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kernel.sysrq &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kernel.printk &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">5&lt;/span> &lt;span style="color:#ae81ff">4&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span> &lt;span style="color:#ae81ff">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kernel.softlockup_panic &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.conf.default.rp_filter &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.ip_forward &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.netdev_max_backlog &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">40960&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.optmem_max &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">921600&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.rmem_default &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2097152&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.wmem_default &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2097152&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.wmem_max &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">8388608&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.rmem_max &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">8388608&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_rmem &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">4096&lt;/span> &lt;span style="color:#ae81ff">87380&lt;/span> &lt;span style="color:#ae81ff">8388608&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_wmem &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">4096&lt;/span> &lt;span style="color:#ae81ff">87380&lt;/span> &lt;span style="color:#ae81ff">8388608&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.udp_mem &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">8388608&lt;/span> &lt;span style="color:#ae81ff">12582912&lt;/span> &lt;span style="color:#ae81ff">16777216&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.udp_rmem_min &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">65536&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.udp_wmem_min &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">65536&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_no_metrics_save &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.icmp_echo_ignore_broadcasts &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.ipfrag_high_thresh &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">5242880&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.ipfrag_low_thresh &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2932160&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.ip_local_port_range &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1025&lt;/span> &lt;span style="color:#ae81ff">65530&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.neigh.default.gc_thresh1 &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">8192&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.neigh.default.gc_thresh2 &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">4092&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.neigh.default.gc_thresh3 &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">8192&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_fin_timeout &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_keepalive_time &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">3600&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_max_syn_backlog &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">40960&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_max_tw_buckets &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1440000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_rmem &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">92160&lt;/span> &lt;span style="color:#ae81ff">6000000&lt;/span> &lt;span style="color:#ae81ff">17476000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_sack &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_synack_retries &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_syncookies &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_syn_retries &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_tw_recycle&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_tw_reuse&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_window_scaling &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.ipv4.tcp_timestamps &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>net.core.somaxconn &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">65535&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>openEuler折腾小记:docker/nvidia 配置</title><link>https://www.wlstack.com/cn/blog/openeuler-docker-nvidia/</link><pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/openeuler-docker-nvidia/</guid><description>&lt;h1 id="openeuler-简介">openEuler 简介&lt;/h1>
&lt;p>openEuler是一款开源操作系统。当前openEuler内核源于Linux，支持鲲鹏及其它多种处理器，能够充分释放计算芯片的潜能，是由全球开源贡献者构建的高效、稳定、安全的开源操作系统，适用于数据库、大数据、云计算、人工智能等应用场景。同时，openEuler是一个面向全球的操作系统开源社区，通过社区合作，打造创新平台，构建支持多处理器架构、统一和开放的操作系统，推动软硬件应用生态繁荣发展&lt;/p>
&lt;h1 id="为什么选择openeuler">为什么选择openEuler&lt;/h1>
&lt;ol>
&lt;li>内存RAS - 高可靠内存，可以支持内核、关键进程、内存文件系统、文件缓存使用高可靠内存，避免内存多 bit 故障引起内核复位。改进了对高可靠内存的支持，对高可靠内存支持更加完善。&lt;/li>
&lt;li>内存RAS - UCE容错增强，支持 copy_from_user 读操作时，发生内存多bit错误，可以通过杀掉受影响的进程，而避免内核复位。
可编程内核调度框架，抢占、选核、选任务部分实现及示例。&lt;/li>
&lt;li>资源隔离，在cgroup v1中支持iocost，用户可以通过配置权重对io资源进行分配。&lt;/li>
&lt;li>CXL支持，增加PCIe/AER的RCEC(Root Complex Event Collectors)处理。
调测，基于 ARM 64 SPE，实现 perf c2c，更方便的检测Cache伪共享，定位性能瓶颈。&lt;/li>
&lt;li>AF_UNIX socket 性能优化，大幅降低多并发场景下，连接时延和CPU占用率。&lt;/li>
&lt;/ol>
&lt;h1 id="openeuler智能运维">openEuler智能运维&lt;/h1>
&lt;p>openEuler提供智能运维基本框架，支持cve管理、配置溯源、异常检测等基础能力，支持快速排障和运维成本降低。&lt;/p>
&lt;p>cve在线巡检，提供cve批量感知修复能力，系统管理各主机漏洞情况，方便用户快速识别主机漏洞，区分受影响与不受影响cve，一键修复，保障集群安全，提升漏洞修复效率。
异常检测，突破在线巡检、高性能高精度探针等关键技术，在mysql、openGauss业务场景实现网络I/O时延、丢包、中断等故障以及磁盘I/O高负载故障的发现。
运维工具集，通过对案例的总结/分析形成，包含问题定位、系统巡检/监控、ftrace增强、一键收集日志等功能，是一款集成分析、流程跟踪、信息定时记录、历史经验固化等功能于一体的OS内核问题定位工具。&lt;/p>
&lt;h1 id="折腾环境与目标">折腾环境与目标&lt;/h1>
&lt;p>CPU：I9-10980XE
主板:MSI X299-PRO
内存:32Gx2
GPU:GIGABYTE 3060x2
OS:openEuler 22.03 (LTS-SP1)
安装包:最小化安装&lt;/p>
&lt;h1 id="安装所需依赖">安装所需依赖&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>dnf install kernel-devel dkms make -y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>yum install bzip2-devel gmp-devel.x86_64 mpfr-devel.x86_64 libmpc-devel.x86_64 libSM-devel.x86_64 libxml2-devel -y
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="安装nvidia驱动">安装nvidia驱动&lt;/h1>
&lt;ol>
&lt;li>
&lt;p>注释开源驱动和ipv6这种碍事的东西
编辑/etc/grub2.cfg或/etc/grub2-efi.cfg，具体是哪个文件取决于bios设置的引导模式是什么。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>	echo &lt;span style="color:#e6db74">&amp;#39;Loading openEuler (5.10.0-136.17.0.93.oe2203sp1.x86_64) 22.03 (LTS-SP1)&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> linuxefi	/vmlinuz-5.10.0-136.17.0.93.oe2203sp1.x86_64 root&lt;span style="color:#f92672">=&lt;/span>UUID&lt;span style="color:#f92672">=&lt;/span>54a9e953-0a9e-45dc-9206-179453b0f341 ro cgroup_disable&lt;span style="color:#f92672">=&lt;/span>files apparmor&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> ipv6.disable&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1&lt;/span> rd.driver.blacklist&lt;span style="color:#f92672">=&lt;/span>nouveau nouveau.modeset&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">0&lt;/span> crashkernel&lt;span style="color:#f92672">=&lt;/span>512M
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>安装nvidia显卡驱动
静默安装，默认接受协议，不检测x windows系统,安装dkms动态内核模块&lt;/p></description></item><item><title>产品研发中的系统化思维（1）：囚徒困境</title><link>https://www.wlstack.com/cn/blog/system-think-1-jail/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/system-think-1-jail/</guid><description>&lt;p>从2010年起，工作的重心与研发的联系越来越紧密。非科班出身，边学习边工作。十二年饮冰，步步皆艰辛。访问最多的网站肯定是某搜索引擎，使用频次最高的按键依然是Ctrl+C和Ctrl+V.
开始时战战兢兢，只会敲命令背语法亦步亦趋，到14年开始创业已是放荡不羁不换行不注释无所畏惧，再到隐入城市，在城中村中求静，潜心打磨产品，一不小心，就已过了4年有余，产品也由套框架、买主题，上线测试，用户评议、合规注册，再到改版重构，数次迭代，渐渐累积了各种矛盾各种负面情绪，或当然还会有敬畏。显然市场竞争技术研发产品进化是逆水行舟不进则退，无论从何角度看都没有躺平的意愿。而前进的诱惑和担忧，却又彷若夫妻有七年止痒，市场反响褒贬不一,用户反馈噪杂无序，微弱的性能优势在价格竞争中不值一提，研发资源有限却又被各种任务快速消费。&lt;strong>产品的历史是往日的荣光，但更可能是三体人的智子，锁死了前进的道路&lt;/strong>。&lt;/p>
&lt;p>而我们清楚的知道，如果&lt;strong>不前进就一定会死&lt;/strong>
同时我发现，这个产品的第一代第二代乃至一直陪伴这个产品成长的小伙伴，在现有体系、架构，维护起来渐感力不从心的时候，往往都希望有一个“破壁者”
但下一个迭代，如果方向不对，就是一个陷阱，很容易陷入某种困境，而跳出来，方有可能在上一个阶梯。&lt;/p>
&lt;p>抱怨1:测试与开发之间&lt;/p>
&lt;pre tabindex="0">&lt;code>1. 关于流程：提测单里不写测试范围或者寥寥几句跟没写一样!系统中提交的bug开发都不及时处理，也不看测试邮件！

2. 关于标准：为什么开发写完代码都不自测就扔给我们?测试提的bug不能复现、优先级还设置为major！

3. 关于资源：谁在测试环境调试？谁动了我们的测试数据？我们开发环境没数据，不用你们的用谁的？

4. 关于态度：测试什么都不懂…跟你说不清楚用户根本不可能这样用，你们整来整去净瞎耽误工夫你们安排计划时根本不考虑测试，三天，三天怎么可能测得完！

...诸如此类...
&lt;/code>&lt;/pre>&lt;p>抱怨2:市场与后端之间&lt;/p>
&lt;p>抱怨3:实施与研究之间&lt;/p>
&lt;p>抱怨4:需求与设计之间&lt;/p>
&lt;h1 id="什么是囚徒困境">什么是囚徒困境&lt;/h1>
&lt;p>囚徒困境是博弈论中的一个经典理论&lt;/p>
&lt;p>1950年，梅里尔.德莱希尔提出了“囚徒困境”的游戏。杜克将这一想法定型完善。&lt;/p>
&lt;pre tabindex="0">&lt;code>两个罪犯被当作嫌疑犯抓获，隔离囚禁候审，二人均在思考招供还是不招。
若二人均不招，各判半年徒刑；
若一人招拱，另一人不招，招供者立功释放，不招者判10年徒刑；
若二人都招，各判2年徒刑。
因无法沟通，二人困惑不已。发明者以这一游戏透示社会生活中普遍存在的一种状况。
&lt;/code>&lt;/pre>&lt;p>在企业里面，通常存在如下类似的困境:&lt;/p>
&lt;pre tabindex="0">&lt;code>一名经理，数名员工; 前提，经理比较苛刻;
如果所有员工都听从经理吩咐，则奖金等待遇一样，不过所有人都超负荷工作;如果某人不听从吩咐，其他人听从吩咐，则此人下岗,其他人继续工作;如果所有人都不听从经理吩咐，则经理下岗;
&lt;/code>&lt;/pre>&lt;p>但是，由于员工之间信息是不透明的，而且，都担心别人听话自己不听话而下岗，所以，大家只能继续繁重的工作。&lt;/p>
&lt;h1 id="上帝视角不应只存在于老板眼中">上帝视角不应只存在于老板眼中&lt;/h1>
&lt;p>电影《教父》里有一句台词：「花一秒钟就看透事物本质的人，和花一辈子都看不清事物本质的人，注定是截然不同的命运。」&lt;/p>
&lt;p>而系统思维，可以简单的以老板看问题看事情的角度来类比。&lt;/p>
&lt;h3 id="从工作本身而论">从工作本身而论：&lt;/h3>
&lt;p>&lt;strong>程序员&lt;/strong>通常执着于&lt;strong>某段代码某个功能&lt;/strong>的实现。
老板看到的是这个功能能不能&lt;strong>迎合市场取悦顾客&lt;/strong>，能不能卖出产品，以及实现这个功能所需的&lt;strong>成本、时间、资源&lt;/strong>。&lt;/p>
&lt;p>而这最终要求产品经理、研发、测试，在产品研发的全生命周期，具备一定的视野，不一定是全局的、系统性的，但至少要分得清，这个系统是什么，由什么组成、组成的流程和链接关系、链接路径，最终实现了什么功能，&lt;strong>满足&lt;/strong>了市场的某个&lt;strong>需求&lt;/strong>&lt;/p>
&lt;h3 id="从企业文化与工作氛围来说">从企业文化与工作氛围来说：&lt;/h3>
&lt;p>我们当然没有办法要求每个人都一定都视野或格局，或经验沉淀，来&lt;strong>聚焦核心&lt;/strong>，或是&lt;strong>高屋建瓴&lt;/strong>，也不可能要求把什么事情都想的面面俱到。
但“宰相起于州部 猛将发于卒伍”，今天不敢想，不深入的想，忙忙碌碌看上去活就没停过，最后发现，要么交付的东西与最初的用户需求或问题，已&lt;strong>南辕北辙&lt;/strong>，捡了芝麻丢了西瓜，要么是是改进了A功能，引入了B隐患或缺陷，最终&lt;strong>顾此失彼&lt;/strong>。而这样的人生，看上去这么辛苦，产物确实一塌糊涂，与测试扯“&lt;strong>设计如此&lt;/strong>”、与老板讲“&lt;strong>资源局限性和妥协&lt;/strong>”、与客户强调“&lt;strong>客观条件&lt;/strong>”，最终陷入“&lt;strong>相互指责&lt;/strong>”、“&lt;strong>借口与推脱&lt;/strong>”、“&lt;strong>相互摆烂&lt;/strong>”的&lt;strong>囚徒困境&lt;/strong>。&lt;/p>
&lt;p>而&lt;strong>囚徒困境&lt;/strong>下，员工与老板、与企业是&lt;strong>双输&lt;/strong>并且将&lt;strong>一直输&lt;/strong>，除非事情得到改善。
很简单的逻辑：工作辛苦、产品不出众、企业市场竞争处于劣势、效益差、薪水低、工作幸福感更差，于是下一个版本下一个产品更&amp;hellip;..&lt;strong>死循环&lt;/strong>直到企业消亡。
而在这个时间段，企业与老板，输的是可量化的经济损失。但对工程师而言输了什么？输了职场的黄金时间，输了&lt;strong>职业生命周期&lt;/strong>。而这，是决定一个工程师能否成长到高级/资深工程师或架构师，走上职场金字塔巅峰的&lt;strong>起点&lt;/strong>。输在了起点，基本上，即可宣告&lt;/p>
&lt;p>在&lt;/p>
&lt;h1 id="系统的定义">系统的定义&lt;/h1>
&lt;p>德内拉•梅多斯在她的著作《系统思考》中的定义：&lt;/p>
&lt;blockquote>
&lt;p>系统是一组相互关联的元素，它以一种可以实现某些东西的方式联系起来。&lt;/p>&lt;/blockquote>
&lt;p>所以，我们可以将系统分为：
&lt;strong>环境&lt;/strong>：系统的运行环境、硬件、操作系统、使用场景；
&lt;strong>要素&lt;/strong>：在系统里，最核心的要素是什么？
&lt;strong>互联&lt;/strong>：要素之间是如何连接的？它们之间的关系是怎样的？它们进行输入和输出的途径是什么？
&lt;strong>目的&lt;/strong>：产品最终想要达到的目的是什么？程序和功能并不是目的，帮助使用程序或功能的人解决某种问题达成某个目标，才是系统设计、产品研发的根部目的。&lt;/p>
&lt;h2 id="套入我们辅助诊断系统">套入我们辅助诊断系统：&lt;/h2>
&lt;h4 id="环境">环境&lt;/h4>
&lt;p>&lt;strong>操作系统&lt;/strong>：Centos7 64bit/一切64位的linux操作系统（特别是基于Linux衍生的&lt;strong>国产操作系统&lt;/strong>，在以后越来越重要），或Windows操作系统
&lt;strong>使用场景&lt;/strong>：病理科边扫描边计算，当切片量大、扫描设备多时，&lt;strong>扫描、计算、阅片复核&lt;/strong>，&lt;strong>同时进行&lt;/strong>是常态。
&lt;strong>硬件环境&lt;/strong>:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>组件&lt;/th>
 &lt;th>供应商或品牌或架构&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>CPU&lt;/td>
 &lt;td>Intel/AMD/ARM(华为)/Apple M&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>内存&lt;/td>
 &lt;td>DDR家用级/服务器级（ecc）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>存储&lt;/td>
 &lt;td>local(ssd/nvme ssd/sata) remote(&lt;strong>nas:nfs/cifs/fc&lt;/strong>/vfs client/fuse client)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>网络&lt;/td>
 &lt;td>介质:ethernet/fiber 连接:lan/wan&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>计算卡&lt;/td>
 &lt;td>GPU:nvidia(&lt;strong>cuda&lt;/strong>)/amd(romc)/华为/Google/xilinx（fbga）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>软件环境&lt;/strong>：&lt;/p></description></item><item><title>jupyterhub notebook ldap统一认证</title><link>https://www.wlstack.com/cn/blog/notebook-docker/</link><pubDate>Mon, 10 Oct 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/notebook-docker/</guid><description>&lt;h1 id="冷饭重炒">冷饭重炒&lt;/h1>
&lt;p>这其实是在19年就应该发出来的一点笔记，只是以前都存在自己脑子里，而且现在随着版本的变动，配置上也有了一点点小变化，所以炒一下冷饭。&lt;/p>
&lt;h2 id="需求是什么">需求是什么&lt;/h2>
&lt;p>在一个小公司里面，如何为算法工程师分配GPU资源是个问题。大厂当然有成熟的k8s+各种gpu虚拟化黑科技。但很显然，这需要完整的体系，从用户认证到临时存储、持久化存储、日志存储、资源配额、资源用量统计、任务队列等等的配套，才能结合k8s的调度一起来完成GPU资源分配。
在2019年的时候，服务器少，人也少，项目和任务单一，所以那时候只搞了服务器端的ldap认证，不存在什么资源协调问题，所以裸机直接上了。
到了20年，机器增多，人也增多，任务和环境的诉求也不一样，这个时候，再走裸机，很显然，无论从资源利用率、数据安全、环境冲突（即使有Anaconda和virtualenv）这样的环境管理，也无法在延续之前的裸机方式了。&lt;/p>
&lt;p>所以呢，准备基于docker容器特性，来实现GPU资源的交付和隔离。那就意味着，在容器内，涉及容器内ssh服务（算法工程师大多喜欢通过vscode直连服务器ssh）、notebook的认证，延续之前的ldap认证。&lt;/p>
&lt;h1 id="规划是这样的">规划是这样的：&lt;/h1>
&lt;ol>
&lt;li>
&lt;p>采用nvidia-container-toolkit结合docker交付GPU资源&lt;/p>
&lt;/li>
&lt;li>
&lt;p>建设内部镜像库，涵盖常见的发行版和cuda版本；&lt;/p>
&lt;/li>
&lt;li>
&lt;p>基于内部镜像库build每个工程师的容器镜像&lt;/p>
&lt;/li>
&lt;li>
&lt;p>每个工程师的工程目录，即ldap里面账户的/home目录，一般在/home/username 下面&lt;/p>
&lt;/li>
&lt;li>
&lt;p>每个工程师能够访问的数据通过挂载host上的目录透传到容器中&lt;/p>
&lt;/li>
&lt;li>
&lt;p>统一管理容器内的时间戳、认证、权限（sudoers）&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h1 id="实际的操作">实际的操作&lt;/h1>
&lt;ol>
&lt;li>容器镜像build的时候安装openssh-server、生成ssh服务所需要的key文件&lt;/li>
&lt;li>容器镜像build的时候，安装jupyterhub和jupyterhub-ldapauthenticator 和nodejs、npm包configurable-http-proxy&lt;/li>
&lt;li>容器镜像build的时候安装nss-pam-ldapd 认证模块&lt;/li>
&lt;li>创建容器&lt;/li>
&lt;/ol>
&lt;pre tabindex="0">&lt;code>docker run -d --rm=false --net=host --restart=unless-stopped --name username --shm-size=8g (cat /etc/hosts|awk -F &amp;#39; &amp;#39; &amp;#39;{if(NR&amp;gt;2){print &amp;#34;--add-host &amp;#34;$2&amp;#34;:&amp;#34;$1}}&amp;#39;) -it -v /data-directory:/data-directory -v /home/username:/home/username -v /var/log/username:/var/log/username -v /etc/jupyterhub/username_config.py:/etc/jupyterhub/username_config.py -e TZ=Asia/Shanghai -v /etc/pam.d:/etc/pam.d:ro -v /etc/nslcd.conf:/etc/nslcd.conf:ro -v /etc/nsswitch.conf:/etc/nsswitch.conf:ro -v /var/run/nslcd:/var/run/nslcd -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v /etc/shadow:/etc/shadow:ro -v /etc/gshadow:/etc/gshadow:ro -v /etc/sudoers:/etc/sudoers:ro --runtime nvidia --privileged image:tag /home/username/start.sh
&lt;/code>&lt;/pre>&lt;p>几个特殊的挂载点和参数，解释一下：&lt;/p></description></item><item><title>FreeBSD ZFS存储与samba配置</title><link>https://www.wlstack.com/cn/blog/freebsd-zfs-samba/</link><pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/freebsd-zfs-samba/</guid><description>&lt;h1 id="作为穷人我们选择基于freebsdzfssamba构建山寨存储">作为穷人，我们选择基于FreeBSD+ZFS+SAMBA构建山寨存储&lt;/h1>
&lt;p>毋庸质疑，也无需赘述&lt;/p>
&lt;p>&lt;strong>freebsd操作系统是公认的“快”、“安全”、“稳定”&lt;/strong>&lt;/p>
&lt;p>&lt;strong>zfs是人类有史以来最先进的文件系统&lt;/strong>&lt;/p>
&lt;h2 id="freebsd入门">FreeBSD入门&lt;/h2>
&lt;h3 id="软件包管理">软件包管理&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Linux® 命令 (Red Hat/Debian)&lt;/th>
 &lt;th>FreeBSD 等价命令	目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>yum install package / apt-get install package&lt;/td>
 &lt;td>pkg install package	从远程仓库安装 package&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rpm -ivh package / dpkg -i package&lt;/td>
 &lt;td>pkg add package	安装 package&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rpm -qa / dpkg -l&lt;/td>
 &lt;td>pkg info	列出已安装的软件包&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="系统管理">系统管理&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Linux&lt;/th>
 &lt;th>FreeBSD 等价命令	目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>lspci&lt;/td>
 &lt;td>pciconf	列出 PCI 设备&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>lsmod&lt;/td>
 &lt;td>kldstat	列出已载入的内核模块&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>modprobe.&lt;/td>
 &lt;td>kldload / kldunload	载入/卸载内核模块&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>strace.&lt;/td>
 &lt;td>truss	跟踪系统调用&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="网络管理">网络管理&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Linux&lt;/th>
 &lt;th>FreeBSD 等价命令	目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>ip&lt;/td>
 &lt;td>ifconfig&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ifconfig&lt;/td>
 &lt;td>ifconfig&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>iptable&lt;/td>
 &lt;td>ipfw&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="zfs入门">ZFS入门&lt;/h2>
&lt;h3 id="zfs-的历史">ZFS 的历史&lt;/h3>
&lt;p>ZFS是由 Matthew Ahrens 和 Jeff Bonwick 在 2001 年开发的。ZFS 是作为 太阳微系统(Sun MicroSystem) 公司的 OpenSolaris 的下一代文件系统而设计的。在 2008 年，ZFS 被移植到了 FreeBSD 。同一年，一个移植 ZFS 到 Linux 的项目也启动了。然而，由于 ZFS 是 通用开发和发布许可证 (Common Development and Distribution License)（CDDL）许可的，它和 GNU 通用公共许可证 不兼容，因此不能将它迁移到 Linux 内核中。为了解决这个问题，绝大多数 Linux 发行版提供了一些方法来安装 ZFS。
在甲骨文公司收购太阳微系统公司之后不久，OpenSolaris 就闭源了，这使得 ZFS 的之后的开发也变成闭源的了。许多 ZFS 开发者对这件事情非常不满。 三分之二的 ZFS 核心开发者 ，包括 Ahrens 和 Bonwick，因为这个决定而离开了甲骨文公司。他们加入了其它公司，并于 2013 年 9 月创立了 OpenZFS 这一项目。该项目引领着 ZFS 的开源开发。
让我们回到上面提到的许可证问题上。既然 OpenZFS 项目已经和 Oracle 公司分离开了，有人可能好奇他们为什么不使用和 GPL 兼容的许可证，这样就可以把它加入到 Linux 内核中了。根据 OpenZFS 官网 的介绍，更改许可证需要联系所有为当前 OpenZFS 实现贡献过代码的人（包括初始的公共 ZFS 代码以及 OpenSolaris 代码），并得到他们的许可才行。这几乎是不可能的（因为一些贡献者可能已经去世了或者很难找到），因此他们决定保留原来的许可证。&lt;/p></description></item><item><title>FreeBSD Lagg 端口聚合与LACP配置</title><link>https://www.wlstack.com/cn/blog/freebsd-lagg/</link><pubDate>Fri, 23 Sep 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/freebsd-lagg/</guid><description>&lt;h1 id="基础环境">基础环境&lt;/h1>
&lt;p>os:FreeBSD 12.3-RELEASE&lt;/p>
&lt;p>网卡:Mellanox Technologies ConnectX-4 Lx&lt;/p>
&lt;p>交换机：华为ce6820-48S6CQ-B&lt;/p>
&lt;h1 id="需求">需求&lt;/h1>
&lt;p>FreeBSD 通过ConnectX-4 两个端口连接到交换机。
配置端口聚合（bonding、aggregate，port-chanel，portgroup 好多种说法），实现2个端口负载均衡。&lt;/p>
&lt;h1 id="配置">配置&lt;/h1>
&lt;h2 id="freebsd侧配置">FreeBSD侧配置：&lt;/h2>
&lt;p>kldload if_lagg ### 加载bonding，即freebsd里的lagg内核模块&lt;/p>
&lt;p>ifconfig lagg0 create ### 创建lagg接口&lt;/p>
&lt;p>ifconfig mce0 up ### 启动mce1 网卡&lt;/p>
&lt;p>ifconfig mce1 up ### 启动mce1 网卡&lt;/p>
&lt;p>ifconfig lagg0 up laggproto lacp laggport mce0 laggport mce1 ### 启动聚合接口，聚合协议为lacp，同时还有loadbalance/fce/failover/roundrobin和none模式可选&lt;/p>
&lt;h2 id="交换机侧配置">交换机侧配置：&lt;/h2>
&lt;p>int eth 111&lt;/p>
&lt;p>mode lacp-dynamic&lt;/p>
&lt;h2 id="持久化配置到服务器上编辑etcrcconf-配置文件">持久化配置到服务器上，编辑/etc/rc.conf 配置文件&lt;/h2>
&lt;pre tabindex="0">&lt;code>ifconfig_mce0=&amp;#34;up&amp;#34;
ifconfig_mce1=&amp;#34;up&amp;#34;
cloned_interfaces=&amp;#34;lagg0&amp;#34;
ifconfig_lagg0=&amp;#34;up laggproto lacp laggport mce0 laggport mce1&amp;#34;
ipv4_addrs_lagg0=&amp;#34;x.x.x.x/x&amp;#34;
defaultrouter=&amp;#34;x.x.x.x&amp;#34;
&lt;/code>&lt;/pre>&lt;h2 id="freebsd-lagg协议的分类">FreeBSD Lagg协议的分类&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>协议&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>failover&lt;/td>
 &lt;td>主备模式，第一个端口为主端口，后续端口为备用端口。流量默认走主端口，主端口故障中断后切换到备用端口&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LACP&lt;/td>
 &lt;td>支持 IEEE 802.3ad 链路聚合控制协议 (LACP) 和标记协议。 LACP 将与一个或多个链路聚合组中的对等方协商一组可聚合链路。 每个 LAG 由相同速度的端口组成，设置为全双工操作。 流量将在总速度最大的 LAG 中的端口之间进行平衡，在大多数情况下，只有一个 LAG 包含所有端口。如果物理连接发生变化，链路聚合将快速收敛到新配置。根据协议标头hash信息平衡活动端口之间的传出流量，并接受来自任何活动端口的传入流量。hash包括以太网源地址和目标地址，以及 VLAN 标记（如果可用）以及 IPv4/IPv6 源地址和目标地址。一般和华为交换机对接时使用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FEC&lt;/td>
 &lt;td>支持思科 EtherChannel。 这是一种静态设置，不会与对等方协商聚合或交换帧来监控链路，如果交换机支持 LACP，则应改为使用它。根据标头信息hash平衡活动端口之间的传出流量，并接受来自任何活动端口的传入流量。 hash包括以太网源地址和目标地址，以及 VLAN 标记（如果可用）以及 IPv4/IPv6 源地址和目标地址。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>loadbalance&lt;/td>
 &lt;td>FEC的别名&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>roundrobin&lt;/td>
 &lt;td>使用轮询分发流量，通过所有活动端口分配传出流量，并接受来自任何活动端口的传入流量。 此模式将违反以太网帧顺序，应谨慎使用。大概率负载不均。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>none&lt;/td>
 &lt;td>这个协议什么都不做：它在不禁用 lagg 接口本身的情况下禁用任何流量。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description></item><item><title>内核优化参数记录之FreeBSD</title><link>https://www.wlstack.com/cn/blog/freebsd-kernel-optimizations/</link><pubDate>Mon, 07 Mar 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/freebsd-kernel-optimizations/</guid><description>&lt;p>#最大的待发送TCP数据缓冲区空间
net.inet.tcp.sendspace=65536&lt;/p>
&lt;p>#最大的接受TCP缓冲区空间
net.inet.tcp.recvspace=65536&lt;/p>
&lt;p>#最大的接受UDP缓冲区大小
net.inet.udp.sendspace=65535&lt;/p>
&lt;p>#最大的发送UDP数据缓冲区大小
net.inet.udp.maxdgram=65535&lt;/p>
&lt;p>#本地套接字连接的数据发送空间
net.local.stream.sendspace=65535&lt;/p>
&lt;p>#加快网络性能的协议
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc1644=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1&lt;/p>
&lt;p>#最大的套接字缓冲区
kern.ipc.maxsockbuf=2097152&lt;/p>
&lt;p>#系统中允许的最多文件数量
kern.maxfiles=65536&lt;/p>
&lt;p>#每个进程能够同时打开的最大文件数量
kern.maxfilesperproc=32768&lt;/p>
&lt;p>#当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包.
#该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送,
#在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,
#对方计算机得不到应答会持续发起连接请求,反而会降低性能.
net.inet.tcp.delayed_ack=0&lt;/p>
&lt;p>#屏蔽ICMP重定向功能
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0&lt;/p>
&lt;p>#防止ICMP广播风暴
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0&lt;/p>
&lt;p>#限制系统发送ICMP速率
net.inet.icmp.icmplim=100&lt;/p>
&lt;p>#安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用
net.inet.icmp.icmplim_output=0
net.inet.tcp.drop_synfin=1&lt;/p>
&lt;p>#设置为1会帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除.死的TCP连接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接
net.inet.tcp.always_keepalive=1&lt;/p>
&lt;p>#若看到net.inet.ip.intr_queue_drops这个在增加,就要调大net.inet.ip.intr_queue_maxlen,为0最好
net.inet.ip.intr_queue_maxlen=1000&lt;/p>
&lt;p>#防止DOS攻击,默认为30000
net.inet.tcp.msl=7500&lt;/p>
&lt;p>#接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包
net.inet.tcp.blackhole=2&lt;/p>
&lt;p>#接收到一个已经关闭的端口发来的所有UDP包直接drop
net.inet.udp.blackhole=1&lt;/p>
&lt;p>#为网络数据连接时提供缓冲
net.inet.tcp.inflight.enable=1&lt;/p>
&lt;p>#如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间,但会需要大量的内核内存空间来保存路由表
net.inet.ip.fastforwarding=0&lt;/p>
&lt;p>##kernel编译打开options POLLING功能,高负载情况下使用低负载不推荐
##SMP不能和polling一起用
#kern.polling.enable=1&lt;/p>
&lt;p>#并发连接数,默认为128,推荐在1024-4096之间,数字越大占用内存也越大
kern.ipc.somaxconn=32768&lt;/p>
&lt;p>#禁止用户查看其他用户的进程
security.bsd.see_other_uids=0&lt;/p>
&lt;p>#设置kernel安全级别
kern.securelevel=0&lt;/p>
&lt;p>#记录下任何TCP连接
net.inet.tcp.log_in_vain=1&lt;/p>
&lt;p>#记录下任何UDP连接
net.inet.udp.log_in_vain=1&lt;/p>
&lt;p>#防止不正确的udp包的攻击
net.inet.udp.checksum=1&lt;/p></description></item></channel></rss>