当前位置:首页>Linux>Linux内核与网络栈调优:让10万并发系统QPS提升300%延迟降低50%

Linux内核与网络栈调优:让10万并发系统QPS提升300%延迟降低50%

  • 2026-01-16 05:40:13
Linux内核与网络栈调优:让10万并发系统QPS提升300%延迟降低50%

Linux内核与网络栈调优:让10万并发系统QPS提升300%延迟降低50%

适用场景 & 前置条件

适用场景:

  • • 高并发 Web/API 服务(QPS 50K+)
  • • 网络密集型应用(CDN/代理/网关)
  • • 数据库/缓存服务器(MySQL/Redis/Kafka)
  • • 容器化平台(Kubernetes 节点优化)

前置条件:

  • • Linux 内核 4.18+(建议 5.10+ LTS)
  • • 具备 root 权限执行 sysctl 配置
  • • 了解当前系统瓶颈(CPU/网络/磁盘)
  • • 已建立性能基线(压测数据)

环境与版本矩阵

组件
版本要求
关键特性依赖
测试环境配置
OS
RHEL 8+ / Ubuntu 22.04+
-
RHEL 8.6 / Ubuntu 22.04
Kernel
5.10+ LTS
BBR 拥塞控制、eBPF 跟踪
5.15.0-89
CPU
8C+
多队列网卡支持
16C (Intel Xeon)
Network
10Gbps+
RSS/RPS/XPS 支持
25Gbps 网卡
Memory
16GB+
连接跟踪表大小
64GB

快速清单(Checklist)

  • • [ ] Step 1: 建立性能基线(压测与监控)
  • • [ ] Step 2: TCP 协议栈优化(连接/缓冲区/拥塞控制)
  • • [ ] Step 3: 网络层优化(backlog/conntrack/端口范围)
  • • [ ] Step 4: 中断与 CPU 亲和性调优
  • • [ ] Step 5: 内存与文件描述符优化
  • • [ ] Step 6: 磁盘 I/O 与文件系统调优
  • • [ ] Step 7: 应用层配合优化(Nginx/JVM)
  • • [ ] Step 8: 验证效果与持久化配置

实施步骤

Step 1: 建立性能基线

目标: 记录优化前的关键指标,用于对比。

# 系统负载与 CPU
uptime
# 输出: load average: 15.2, 12.8, 10.3 (基线记录)

mpstat -P ALL 1 10 | tee /tmp/cpu-baseline.txt
# 记录 CPU 利用率、%sys、%soft(软中断)

# 网络吞吐与连接数
sar -n DEV 1 10 | tee /tmp/network-baseline.txt
# 记录 rxpck/s、txpck/s、rxkB/s、txkB/s

ss -s
# 记录 TCP 连接数(estab/timewait/orphaned)

# TCP 重传率(关键指标)
netstat -s | grep -E "retransmit|timeout"
# 记录 segments retransmited、timeouts

# 使用 wrk 压测建立基线
wrk -t8 -c1000 -d60s --latency http://192.168.1.10:8080/
# 记录 QPS、P50/P99 延迟

基线示例:

优化前基线:
- QPS: 12000 req/s
- P99 延迟: 850ms
- 重传率: 1.2%
- CPU %sys: 35%
- TCP ESTABLISHED: 8500

Step 2: TCP 协议栈优化

目标: 优化 TCP 连接建立、数据传输、连接回收效率。

TCP 连接队列优化

# /etc/sysctl.d/10-tcp-tuning.conf

# SYN 队列大小(处理大量新连接)
net.ipv4.tcp_max_syn_backlog = 16384   # 默认 1024
net.core.somaxconn = 16384              # 应用层 listen() backlog 上限

# SYN Cookies(防 SYN Flood)
net.ipv4.tcp_syncookies = 1             # 1=开启

# SYN-ACK 重试次数
net.ipv4.tcp_synack_retries = 2         # 默认 5,降低可快速释放资源

# 应用配置立即生效
sysctl -p /etc/sysctl.d/10-tcp-tuning.conf

验证 SYN 队列溢出:

# 压测前后对比
netstat -s | grep -i "SYNs to LISTEN"
# 输出: 1234 SYNs to LISTEN sockets dropped (优化后应接近 0)

TCP 缓冲区优化

# TCP 读写缓冲区(关键性能参数)
net.ipv4.tcp_rmem = 4096 87380 16777216  # min default max (读缓冲,16MB)
net.ipv4.tcp_wmem = 4096 65536 16777216  # 写缓冲

# TCP 自动调整缓冲区
net.ipv4.tcp_moderate_rcvbuf = 1

# 全局 socket 缓冲区限制(单位:页,4KB/页)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 262144
net.core.wmem_default = 262144

# 应用配置
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"

参数解释:

  • • tcp_rmem[2]: 接收窗口最大值,影响下载速度(高带宽环境需增大)
  • • tcp_wmem[2]: 发送窗口最大值,影响上传速度
  • • tcp_moderate_rcvbuf: 自动调整窗口,基于 RTT 与带宽

验证缓冲区:

# 查看连接实际使用的缓冲区
ss -tm | grep -A1 "ESTAB"
# 输出:
#  skmem:(r0,rb369280,t0,tb87040,f0,w0,o0,bl0,d0)
#  rb=接收缓冲,tb=发送缓冲

TCP TIME_WAIT 优化

# TIME_WAIT 复用与快速回收
net.ipv4.tcp_tw_reuse = 1               # 允许复用 TIME_WAIT socket
net.ipv4.tcp_fin_timeout = 15           # FIN_WAIT2 超时(默认 60s)

# TIME_WAIT bucket 上限
net.ipv4.tcp_max_tw_buckets = 50000     # 默认 16384

# 孤儿连接(未被进程持有)限制
net.ipv4.tcp_max_orphans = 65536        # 默认 16384

# 应用配置
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_fin_timeout=15

注意tcp_tw_recycle 已在内核 4.12 废弃,使用 tcp_tw_reuse 替代。

验证 TIME_WAIT:

# 压测时监控 TIME_WAIT 数量
watch -n1 'ss -s | grep TIME-WAIT'
# 优化后应显著减少

TCP 拥塞控制算法

# 查看可用算法
sysctl net.ipv4.tcp_available_congestion_control
# 输出: cubic reno bbr

# 切换到 BBR(需内核 4.9+)
modprobe tcp_bbr
echo"tcp_bbr" >> /etc/modules-load.d/bbr.conf
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl -w net.core.default_qdisc=fq

# 持久化
cat <<EOF >> /etc/sysctl.d/10-tcp-tuning.conf
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
EOF


# 验证 BBR 生效
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

BBR vs Cubic 对比:

  • • Cubic(默认): 基于丢包检测拥塞,高丢包率下性能下降
  • • BBR: 基于带宽与 RTT,高丢包环境下吞吐提升 10-25%

Step 3: 网络层优化

IP 层参数

# 本地端口范围(客户端连接使用)
net.ipv4.ip_local_port_range = 10000 65000  # 默认 32768-60999

# 连接跟踪表大小(NAT/防火墙环境)
net.netfilter.nf_conntrack_max = 1048576    # 默认 65536
net.netfilter.nf_conntrack_tcp_timeout_established = 600  # 默认 432000(5天)

# ARP 缓存
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192

# 应用配置
sysctl -p /etc/sysctl.d/10-tcp-tuning.conf

验证 conntrack 表:

# 查看当前使用量
cat /proc/sys/net/netfilter/nf_conntrack_count
# 输出: 62341

# 查看上限
cat /proc/sys/net/netfilter/nf_conntrack_max
# 输出: 1048576

# 监控溢出(有溢出说明需增大 max)
dmesg | grep "nf_conntrack: table full"

网卡多队列与中断亲和性

# 查看网卡队列数
ethtool -l eth0
# 输出:
# Combined: 8 (当前)
# Combined: 16 (最大支持)

# 增加队列数(需硬件支持)
ethtool -L eth0 combined 16

# 查看中断分布
cat /proc/interrupts | grep eth0
# 理想情况: 每个队列绑定不同 CPU

# 手动绑定中断到 CPU(示例:中断 125 绑定到 CPU 0)
echo 1 > /proc/irq/125/smp_affinity_list  # 1 表示 CPU 0
echo 2 > /proc/irq/126/smp_affinity_list  # 2 表示 CPU 1

自动化脚本(irqbalance 替代方案):

#!/bin/bash
# set-irq-affinity.sh - 网卡中断均衡分布
IFACE=eth0
QUEUES=$(ls -d /sys/class/net/$IFACE/queues/rx-* | wc -l)
CPU_COUNT=$(nproc)

for ((i=0; i<$QUEUES; i++)); do
    IRQ=$(cat /sys/class/net/$IFACE/queues/rx-$i/../../../msi_irqs/* | head -1)
    CPU=$((i % CPU_COUNT))
echo$CPU > /proc/irq/$IRQ/smp_affinity_list
echo"IRQ $IRQ -> CPU $CPU"
done

RPS/RFS 软件多队列

# 启用 RPS(Receive Packet Steering,单队列网卡软件实现多队列)
# 对于网卡队列 < CPU 核数的场景

# 配置 RPS(以 eth0 为例)
for i in /sys/class/net/eth0/queues/rx-*/rps_cpus; do
echo"ffff" > $i# ffff=使用所有 16 个 CPU
done

# 启用 RFS(Receive Flow Steering,进一步优化到应用所在 CPU)
sysctl -w net.core.rps_sock_flow_entries=32768
for i in /sys/class/net/eth0/queues/rx-*/rps_flow_cnt; do
echo 2048 > $i
done

Step 4: 中断与 CPU 亲和性

目标: 减少 CPU 上下文切换,降低软中断开销。

软中断监控

# 查看软中断占比
mpstat -P ALL 1 5
# 关注 %soft 列,正常应 <10%

# 详细软中断统计
cat /proc/softirqs
# NET_RX 行显示每 CPU 的网络接收中断数

# 实时监控
watch -n1 'cat /proc/softirqs | grep NET_RX'

应用进程 CPU 绑定

# 查看进程当前 CPU 亲和性
taskset -cp <PID>
# 输出: pid 12345's current affinity list: 0-15

# 绑定 Nginx worker 到特定 CPU
# 编辑 /etc/nginx/nginx.conf
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

# 验证绑定
ps -eLo pid,tid,psr,comm | grep nginx
# psr 列显示当前运行的 CPU 编号

Step 5: 内存与文件描述符

内存管理优化

# 脏页回写优化(减少 I/O 延迟)
vm.dirty_ratio = 10                     # 脏页占比达 10% 触发同步写
vm.dirty_background_ratio = 5           # 后台回写起始点
vm.dirty_writeback_centisecs = 100      # 每 1 秒回写一次

# 内存分配策略
vm.overcommit_memory = 1                # 允许超额分配(Redis/MongoDB 推荐)

# 交换分区(生产环境建议禁用或最小化)
vm.swappiness = 10                      # 默认 60,降低换页频率

# 应用配置
cat <<EOF >> /etc/sysctl.d/20-memory.conf
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.swappiness = 10
EOF

sysctl -p /etc/sysctl.d/20-memory.conf

文件描述符限制

# 系统级限制
fs.file-max = 2097152

# 进程级限制(/etc/security/limits.conf)
cat <<EOF >> /etc/security/limits.conf
*   soft nofile 100000
*   hard nofile 100000
root soft nofile 100000
root hard nofile 100000
EOF


# 当前 shell 立即生效
ulimit -n 100000

# 验证
ulimit -n
cat /proc/sys/fs/file-max

验证文件描述符使用:

# 系统级使用率
cat /proc/sys/fs/file-nr
# 输出: 12345  0  2097152
#       ↑已用   ↑未用  ↑总量

# 进程级使用(以 Nginx 为例)
PID=$(pgrep nginx | head -1)
ls /proc/$PID/fd | wc -l
cat /proc/$PID/limits | grep "open files"

Step 6: 磁盘 I/O 与文件系统

I/O 调度器优化

# 查看当前调度器
cat /sys/block/sda/queue/scheduler
# 输出: noop [deadline] cfq

# SSD 推荐使用 noop 或 none(内核 5.0+)
echo noop > /sys/block/sda/queue/scheduler

# 持久化(/etc/udev/rules.d/60-scheduler.rules)
cat <<EOF > /etc/udev/rules.d/60-scheduler.rules
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
EOF

文件系统挂载参数

# /etc/fstab 优化示例(XFS)
/dev/sda1 /data xfs defaults,noatime,nodiratime,nobarrier 0 0

# 参数解释:
# noatime: 不更新访问时间(减少 I/O)
# nodiratime: 不更新目录访问时间
# nobarrier: 禁用写屏障(SSD + UPS 环境可用)

# 重新挂载生效
mount -o remount /data

# 验证挂载参数
mount | grep /data

Step 7: 应用层配合优化

Nginx 配置优化

# /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
worker_rlimit_nofile100000;
worker_cpu_affinity auto;

events {
useepoll;
worker_connections10000;
multi_accepton;
}

http {
sendfileon;
tcp_nopushon;
tcp_nodelayon;
keepalive_timeout65;
keepalive_requests1000;

# 连接池
upstream backend {
server192.168.1.21:8080;
keepalive256;
keepalive_requests1000;
keepalive_timeout60s;
    }
}

Java JVM 优化

# JVM 启动参数(堆外内存与 GC)
JAVA_OPTS="-Xms8g -Xmx8g \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=200 \
  -XX:+ParallelRefProcEnabled \
  -XX:+UnlockExperimentalVMOptions \
  -XX:G1NewSizePercent=30 \
  -XX:InitiatingHeapOccupancyPercent=35 \
  -XX:+DisableExplicitGC \
  -Djava.net.preferIPv4Stack=true"


# 连接池配置(HikariCP 示例)
spring.datasource.hikari.maximum-pool-size=200
spring.datasource.hikari.minimum-idle=20
spring.datasource.hikari.connection-timeout=5000

Step 8: 验证效果与持久化

性能验证

# 使用相同压测参数对比
wrk -t8 -c1000 -d60s --latency http://192.168.1.10:8080/

# 优化后预期结果:
# QPS: 38000 req/s  (提升 316%)
# P99 延迟: 420ms    (降低 50%)
# 重传率: 0.3%       (降低 75%)
# CPU %sys: 18%      (降低 48%)

配置持久化检查

# 合并所有配置到单一文件
cat /etc/sysctl.d/*.conf > /etc/sysctl.conf

# 验证下次重启后生效
sysctl -p /etc/sysctl.conf

# 检查服务自启动
systemctl list-unit-files | grep enabled | grep -E "nginx|network"

监控与告警

关键性能指标

# 实时监控脚本
#!/bin/bash
# perf-monitor.sh

whiletruedo
echo"=== $(date) ==="

# TCP 连接状态
    ss -s | grep TCP

# 重传率
    netstat -s | grep -E "segments retransmited" | awk '{print "Retrans: " $1}'

# 软中断
    mpstat -P ALL 1 1 | grep Average | awk '{print "CPU Soft IRQ: " $8 "%"}'

# 网络吞吐
    sar -n DEV 1 1 | grep eth0 | tail -1 | awk '{print "RX: " $5 " KB/s, TX: " $6 " KB/s"}'

echo"---"
sleep 5
done

Prometheus 指标采集

# node-exporter 关键指标
node_netstat_Tcp_RetransSegs# TCP 重传数
node_netstat_TcpExt_TCPTimeouts# TCP 超时数
node_softnet_dropped_total# 软中断丢包
node_network_receive_drop_total# 网卡接收丢包

告警规则:

groups:
-name:kernel_network_alerts
rules:
-alert:HighTCPRetrans
expr:rate(node_netstat_Tcp_RetransSegs[1m])>100
for:5m
labels:
severity:warning
annotations:
summary:"TCP 重传率异常(>100/s)"

-alert:SoftnetDropped
expr:rate(node_softnet_dropped_total[1m])>10
for:2m
labels:
severity:critical
annotations:
summary:"软中断丢包(内核网络栈过载)"

性能与容量

性能提升对比表

指标
优化前
优化后
提升幅度
QPS
12000/s
38000/s
+316%
P99 延迟
850ms
420ms
-50%
TCP 重传率
1.2%
0.3%
-75%
CPU %sys
35%
18%
-48%
TIME_WAIT 连接数
28000
8500
-69%

容量规划公式

单机理论并发 = (本地端口数 × 目标 IP 数) / 平均连接时长(s)
实际可用并发 = min(
    理论并发,
    文件描述符限制,
    内存限制(每连接约 4KB),
    conntrack 表大小
)

示例(16C64G 服务器):
- 端口范围: 10000~65000(55000 个)
- 目标后端: 10 个
- 平均连接时长: 1s
- 理论并发: (55000 × 10) / 1 = 550,000
- fd 限制: 100,000
- 内存限制: 64GB × 0.5 / 4KB ≈ 8,388,608
- 推荐配置: 80,000 并发(预留 20% buffer)

安全与合规

SYN Flood 防护

# 启用 SYN Cookies
net.ipv4.tcp_syncookies = 1

# 限制 SYN 队列
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_synack_retries = 2

# 配合 iptables 限速
iptables -A INPUT -p tcp --dport 80 --syn -m limit --limit 100/s --limit-burst 200 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 --syn -j DROP

IP 伪造防护

# 启用反向路径过滤(防 IP 欺骗)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# 禁止 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

常见故障与排错

症状
诊断命令
可能根因
快速修复
永久修复
软中断 CPU 占用 >30%
mpstat -P ALL 1
网卡队列不足/中断分布不均
增加网卡队列 ethtool -L
配置中断亲和性 + RPS/RFS
TCP 重传率 >5%
netstat -s | grep retrans
网络丢包/拥塞控制算法不当
切换到 BBR 拥塞控制
检查网络设备 + 增大缓冲区
conntrack table full
dmesg | grep nf_conntrack
连接跟踪表溢出
增大 nf_conntrack_max
减少连接超时时间 + 扩容
TIME_WAIT 过多
ss -s | grep TIME-WAIT
短连接过多
开启 tcp_tw_reuse
应用层启用 keep-alive
端口耗尽
netstat -s | grep "port already in use"
可用端口不足
扩大 ip_local_port_range
优化连接复用 + 减少 fin_timeout
文件描述符耗尽
cat /proc/sys/fs/file-nr
fd 限制过低
ulimit -n 100000
修改 limits.conf + 应用重启

最佳实践(10 条)

  1. 1. 分层优化: 按 TCP→IP→网卡→应用 顺序逐层优化,每层验证效果后再进行下一层
  2. 2. BBR 默认开启: 生产环境统一使用 BBR 拥塞控制(内核 4.9+)
  3. 3. 缓冲区自适应: 启用 tcp_moderate_rcvbuf,让内核根据 RTT 自动调整窗口
  4. 4. 连接复用强制: 应用层必须配置连接池,Nginx upstream 启用 keepalive
  5. 5. 中断均衡: 多队列网卡每队列绑定独立 CPU,避免单核软中断瓶颈
  6. 6. 监控四大指标: QPS、P99 延迟、重传率、软中断 CPU 占比,设置 SLO 告警
  7. 7. 压测验证: 每次调优后使用 wrk/ab 压测验证,建立性能基线对比
  8. 8. 参数渐进式: 单次调整 1-3 个参数,观察 1 小时稳定后再调整下一批
  9. 9. TIME_WAIT 控制: 开启 tw_reuse,但勿过度减小 fin_timeout(<10s 可能导致连接复用冲突)
  10. 10. 容器环境特殊处理: K8s 节点需额外调优 conntrack、iptables 规则数、overlay 网络 MTU

附录:完整配置文件

生产级 sysctl.conf

# /etc/sysctl.d/99-production-tuning.conf
# 生产环境 Linux 内核调优完整配置

### TCP 协议栈优化 ###
net.ipv4.tcp_max_syn_backlog = 16384
net.core.somaxconn = 16384
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_tw_buckets = 50000
net.ipv4.tcp_max_orphans = 65536

net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq

### 网络层优化 ###
net.ipv4.ip_local_port_range = 10000 65000
net.netfilter.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_tcp_timeout_established = 600

net.core.netdev_max_backlog = 8192
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192

### 内存管理 ###
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.swappiness = 10
vm.overcommit_memory = 1

### 文件系统 ###
fs.file-max = 2097152

### 安全防护 ###
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

### 应用配置 ###
sysctl -p /etc/sysctl.d/99-production-tuning.conf

一键应用脚本

#!/bin/bash
# apply-kernel-tuning.sh - 一键应用内核优化

set -euo pipefail

BACKUP_DIR="/root/kernel-tuning-backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p $BACKUP_DIR

echo"==> 备份当前配置"
sysctl -a > $BACKUP_DIR/sysctl-before.txt
cp -r /etc/sysctl.d $BACKUP_DIR/

echo"==> 应用优化配置"
curl -sO https://example.com/99-production-tuning.conf
mv 99-production-tuning.conf /etc/sysctl.d/
sysctl -p /etc/sysctl.d/99-production-tuning.conf

echo"==> 加载 BBR 模块"
modprobe tcp_bbr
echo"tcp_bbr" >> /etc/modules-load.d/bbr.conf

echo"==> 验证关键参数"
sysctl net.ipv4.tcp_congestion_control | grep -q bbr || { echo"BBR 未生效"exit 1; }
sysctl net.ipv4.tcp_tw_reuse | grep -q "= 1" || { echo"tw_reuse 未生效"exit 1; }

echo"==> 优化完成,备份保存于 $BACKUP_DIR"
echo"==> 建议重启后验证: reboot"

测试于: 2025-10, RHEL 8.6 / Ubuntu 22.04, Kernel 5.15, 16C64G

推荐阅读

一键部署,轻松上手!DeepSeek-R1本地部署指南,开启你的AI探索之旅!

干货 | PXE+kickstart无人值守批量装机(原理与架构)

干货 | PXE+kickstart无人值守批量装机(实战部署)

ifconfig已淘汰,ip登场

Linux 云计算 学习路线(建议收藏)

放后台的Linux任务没有了,试试这个命令

Linux 网络状态工具 ss 命令详解

这次终于搞明白VLAN技术了

终于有人把敏捷、DevOps、CI、CD讲清楚了

快速上手:iperf网络性能测试工具(运维必会)

shell分析日志文件命令全面总结(超详细)

在Linux上保护SSH服务器连接的8种方法

分享一款免费好用的跨平台SSH客户端

HTTP/3正式发布,深入理解HTTP/3协议

kafka原理竟然如此简单,一看就明白!

给计算机、云计算专业学弟、学妹们的血泪建议

领导让我选监控,Zabbix 和 Prometheus 我该选哪个

Linux的TCP连接数量最大不能超过65535?那服务器是如何应对百万千万的并发的?

高性能GPU服务器架构分析(上篇)

高性能GPU服务器架构分析(下篇)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 17:56:23 HTTP/2.0 GET : https://f.mffb.com.cn/a/463518.html
  2. 运行时间 : 0.101460s [ 吞吐率:9.86req/s ] 内存消耗:4,482.49kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c766ab287c6b1ee982610ead9daf52dc
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000520s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000891s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000366s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000266s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000533s ]
  6. SELECT * FROM `set` [ RunTime:0.000205s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000987s ]
  8. SELECT * FROM `article` WHERE `id` = 463518 LIMIT 1 [ RunTime:0.000833s ]
  9. UPDATE `article` SET `lasttime` = 1770544583 WHERE `id` = 463518 [ RunTime:0.009376s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000244s ]
  11. SELECT * FROM `article` WHERE `id` < 463518 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000411s ]
  12. SELECT * FROM `article` WHERE `id` > 463518 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000335s ]
  13. SELECT * FROM `article` WHERE `id` < 463518 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000676s ]
  14. SELECT * FROM `article` WHERE `id` < 463518 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004200s ]
  15. SELECT * FROM `article` WHERE `id` < 463518 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.015552s ]
0.102987s