Ubuntu 时间戳精度设置与提升
一、概念澄清
二、显示或生成不同精度的时间戳
date +%sdate +%s%3Ndate +"%Y-%m-%d %H:%M:%S.%3N"date -Iseconds / date -Insperl -MTime::HiRes -e 'printf "%.0f\n", Time::HiRes::time()'perl -MTime::HiRes -e 'printf "%.0f\n", Time::HiRes::time()*1000'python3 -c 'import time; print(int(time.time()))'python3 -c 'import time; print(int(time.time()*1000))'%N 输出纳秒(字符串),%3N 取前三位即毫秒;若需微秒可用 %6N。上述方式均为“生成/显示”层面的精度控制。三、文件系统时间戳精度
cat /proc/fs/jbd2/<device>-*/info(如 jbd2/sda1-8/info),关注 Journal - writeback 5 等字段。/etc/fstab 对应挂载项添加 commit=N(单位秒),例如 commit=1 可将提交间隔缩短到 1 秒;数值越小,I/O 压力越大。commit 可提升“落盘时间戳”及时性,但会增加写放大与负载。四、提高定时与测量精度(系统层面)
sudo sysctl -w kernel.sched_min_granularity_ns=1000000sudo sysctl -w kernel.sched_migration_cost_ns=1000五、网络数据包时间戳(进阶)
SOF_TIMESTAMPING_TX_HARDWARE / RX_HARDWARE