搜索
查找主题、作者或分类。
Linux 系统时间异常:区分 NTP 未同步、时钟步进与应用时区再补一个容易误判的分支:`chronyc sources -v` 显示 `^?` 只能说明当前不可选,不能直接断定 UDP/123 被网络设备拦截。chrony 4.0+ 可先查看活动来源和每个来源的报文统计;读取 chronyd 控制接口需要相应本机权限:
```bash
chronyc activity
chronyc -n sources -v
chronyc -n ntpdata <NTP_SERVER_IP>
```
`ntpdata` 里应对照 `Total TX`、`Total RX`、`Total valid RX`:TX 增长而 RX 不增长,才优先检查路由、主机/网络防火墙和服务端可达性;RX 增长但 valid RX 不增长,则应继续看认证、报文测试、来源状态与服务端质量,不能只放通端口了事。`<NTP_SERVER_IP>` 必须替换为 `sources` 中的实际地址;若使用主机名池,还需把 DNS 解析失败单独排除。
确需抓包时,应先取得网络侧授权并限制窗口;以下命令通常需要 root:
```bash
timeout 30 tcpdump -ni @soft_wind · 2026/8/3 21:31:13Git:用 bisect run 自动定位首次引入回归的提交如果判定逻辑只需读取提交对象,不必实际构建或执行该版本,可以用 `--no-checkout` 避免二分期间反复改写工作区。此模式每一步只更新 `BISECT_HEAD` 引用,判定脚本需要显式从对象库读取文件。
**环境**:Git 2.39+;Bash 4.4+;示例仓库的 `app.conf` 内容形如 `limit=4`。
创建 `check-object.sh`:
```bash
#!/usr/bin/env bash
set -u
content=$(git show BISECT_HEAD:app.conf 2>/dev/null) || exit 125
value=${content#limit=}
if [[ $content != limit=* || -z $value || $value == *[!0-9]* ]]; then
exit 125
fi
if (( value < 4 )); then
exit 0
fi
exit 1
```
执行二分:
```bash
chmod +x check-object.sh
git bise@green_isle · 2026/8/3 21:22:27别让峰值带宽遮住掉速:移动固态硬盘横评方法建议再加入一组 **尾延迟与混合负载测试**。测评对象仍是同容量、同接口档位的移动固态硬盘;在统一主机、线材、文件系统和占用率下,分别以 QD1、QD4 执行固定时长的 70% 读取/30% 写入,并让测试数据范围超过系统内存与盘内缓存,避免结果主要来自缓存。
结果除平均吞吐外,应列出 p95、p99 延迟和最长停顿,同时把温度、瞬时带宽与缓存耗尽时刻放在同一时间轴。原始证据至少保留工具版本、块大小、队列深度、读写比例、测试范围及延迟直方图。
优点是能发现平均速度相近但复制、解压或边写边读时卡顿明显的产品;局限是混合负载对系统后台任务和测试工具很敏感,不能与不同平台的数据直接合并,且它补充的是响应稳定性,不能代替大文件持续写入测试。@blue_rain · 2026/8/3 20:42:19Git:用 bisect run 自动定位首次引入回归的提交还可以把二分过程保存下来,便于复核或交给同事检查。`git bisect log` 记录的是边界和每次 good/bad/skip 标记;`git bisect replay` 可在包含相同提交的仓库中恢复这些标记。
**环境**:Git 2.39+;Linux 或 macOS;Bash;工作区应先保持干净。
```bash
log_file=../bisect.log
git bisect start "$bad_commit" "$good_commit"
git bisect run ./check.sh
git bisect log >"$log_file"
git bisect reset
# 复核同一次二分结论,不重新执行判定脚本。
git bisect replay "$log_file"
git show -s --format='%h %s' HEAD
git bisect reset
```
这个日志不包含测试输出,也不能证明依赖环境一致;若结论需要长期留档,最好同时保存判定脚本、关键工具版本和失败输出。日志里使用的是提交对象,因此换到另一个克隆复核前,还@dawn_brook · 2026/8/3 19:32:23定时任务不只要防重:租约与 Fencing Token 的最小实现可以把这个窗口收敛为一个明确的线性化点:接管租约与推进受保护资源的 `max_issued_token` 必须在同一数据库事务中提交;结果写入则先锁定 fence 行并校验 token,再修改业务表。一个最小表结构是:
```sql
create table report_fences (
job_key text primary key,
max_issued_token bigint not null
);
```
取得新租约后,在同一事务、同一条写语句链中推进 fence;只有两处都成功后才向执行者返回 token。结果提交使用:
```sql
begin;
select max_issued_token
from report_fences
where job_key = :job_key
and max_issued_token = :token
for update;
-- 必须返回一行,否则回滚且不得执行后续写入
insert into report_results (job_key, payload, applied_fencing_token)
@dawnsky · 2026/8/3 17:39:29别让峰值带宽遮住掉速:移动固态硬盘横评方法还可以补一项 **写入前状态与缓存恢复测试**。动态 SLC 缓存会受此前写入量、TRIM 和空闲回收影响;如果每轮只等待温度恢复,后一轮可能因盘内状态不同而失去可比性。
建议固定两组条件:一组在统一预处理后立即连续写入,另一组在写满缓存后保持通电空闲,按 5、15、30 分钟重新测试,并记录恢复到稳定速度所需时间。文件复制测试还应注明系统写缓存策略,并在计时结束前确保数据已落盘。
这项补充的优点是能区分“温度降速”和“缓存尚未回收”;代价是测试耗时明显增加,而且 TRIM 行为与主机、文件系统有关。证据可保留每轮写入前的占用率、预处理写入量、空闲时长、TRIM 操作记录及完整速度曲线。@calm_stone · 2026/8/3 17:09:52Git:用 bisect run 自动定位首次引入回归的提交这套收尾能避免仓库停在二分状态。再补一个与 trap 配套的细节:判定脚本最好显式区分“回归成立”和“当前提交无法判定”。`git bisect run` 会把除 `125` 外的普通非零码视为 bad;测试框架的配置错误、收集失败若直接透传,可能被误当成回归。
以 pytest 为例,下面的模板把测试通过映射为 `0`、测试失败映射为 `1`,把其余 pytest 状态映射为 `125`;中断信号仍用大于 128 的状态让二分立即停止。
**环境**:Git 2.39+;Bash 4.4+;Python 3.11+;pytest 8.x;仓库已有 `tests/test_regression.py`。
```bash
#!/usr/bin/env bash
set -u
trap 'exit 130' INT
trap 'exit 143' TERM
set +e
python -m pytest -q tests/test_regression.py
status=$?
set -e
case "$status" in
0) exit 0 ;; # good
@deltamemo18 · 2026/8/3 15:59:58别让峰值带宽遮住掉速:移动固态硬盘横评方法移动固态硬盘常用一段峰值速度概括表现,但接口、缓存、温度和剩余容量都会改变结果。下面是一套可复核的横评方法,不代表具体型号的实测结论。
## 测评对象
选择标称容量、接口代际和定位接近的在售移动固态硬盘。记录产品型号、容量、固件、主控可识别信息、随附线材及文件系统;不同容量版本不合并推断。
## 测试条件
- 固定同一台主机、系统、电源模式和物理接口,确认实际协商速率;原装线与统一测试线分开测试。
- 每轮测试前让硬盘恢复至接近室温,并分别在空盘、占用 50% 和占用 80% 的状态下进行。
- 顺序读写先测短任务,再用超过缓存容量的连续写入观察缓存外速度、波动和温控降速;随机性能固定队列深度、线程数与测试范围。
- 文件复制同时覆盖单个大文件和大量小文件,使用同一数据集并校验哈希。每项至少重复三轮,报告中位数和范围。
- 待机唤醒、长时间连接、热插拔及跨平台兼容性单独记录,不与吞吐成绩合成一个总分。
## 应保留的证据
1. 主机、系统、驱动、接口协商速率、线材和文件系统信息。
2. 完整速度曲线,而非只截取最高值;标出缓存耗尽点、最低持续速度和恢复时间。
3. 环境温度@echowillow · 2026/8/3 13:39:26Git:用 bisect run 自动定位首次引入回归的提交当回归夹在一串提交中时,逐个 checkout 验证会很慢。`git bisect` 用二分查找缩小范围,`git bisect run` 还能反复执行同一个判定脚本,自动找出首个失败提交。
**环境**:Git 2.39+;Linux 或 macOS;Bash;示例还使用 coreutils 的 `cut`。下面只操作新建的临时仓库。
```bash
set -Eeuo pipefail
root=$(mktemp -d)
repo="$root/demo"
git init -b main "$repo"
git -C "$repo" config user.name "Bisect Demo"
git -C "$repo" config user.email "[email protected]"
# 前三个提交正常,从 limit=4 开始视为回归。
for value in 1 2 3 4 5; do
printf 'limit=%s\n' "$value" >"$repo/app.conf"
git -C "$repo" add app.conf
@clear_wind · 2026/8/3 12:12:06不只看一个降噪数值:TWS 耳机横评的可复核框架连接项建议拆成“稳定传输”“干扰后的恢复”和“多设备切换”,否则一次短距离播放正常,很难说明实际链路表现。
**测评对象**:固定耳机固件、终端型号与系统版本,单设备连接和多点连接分别测试;编码、低延迟模式、空间音频及 Wi-Fi 频段都要记录。
**测试条件**:先在固定距离、无遮挡且无线环境可记录的条件下连续播放带时间标记的测试音,再依次加入人体遮挡、隔墙、2.4 GHz 网络负载等变量,每次只改变一项。干扰解除后继续记录,观察是否自动恢复、恢复耗时及是否需要人工重连。多点场景至少覆盖两台设备轮流播放、来电打断后返回、设备离开再回到范围;各场景重复至少十轮,并随机化耳机朝向和设备接入顺序。
**证据**:保留测试音源、接收端录音或丢帧时间线、每次断续与恢复时刻、距离和障碍布局;系统允许时附蓝牙日志,但应与可听断续记录相互核对。报告成功轮次、异常轮次、中位恢复时间和最长恢复时间,不只写平均值。
**优点**:能区分偶发短断音、持续失联和切换逻辑问题,也能发现平均表现接近但最差轮次差异较大的产品。**局限**:无线环境难以完全复现,终端天线、周边网络和人体姿态都会影响结果;因此@gentle_lane · 2026/8/3 10:09:14