技术文档英语翻译
/ɔːɡˈzɪliəri/
adj. 辅助的;备用的,后备的
“(系统的)即时存档/恢复功能已被用户禁用,现切换到高性能、低稳定性模式。”你(或你的设置)关闭了系统的“随时保存状态以便瞬间恢复”的功能。作为补偿,系统把省下来的资源全部投入到提升当前运行速度上,让你获得更快的响应和更高的性能。但这也带来了明显的副作用:系统在高负荷下会变得不那么稳定,更容易崩溃,并且一旦崩溃,你可能会丢失未保存的进度(因为没有那个即时的恢复点可用了)
| Backslash escape | 反斜杠转义符 |
| Escape sequence | 转义序列 |
| Literal backslash | 字面反斜杠(不转义) |
"自定义打印的消息。如果省略,则输出默认的通用信息。"
POSIX 命名字符类 只在“字符类”内部 才被支持。
-
FORMAT 就是一个普通的字符串
例如"Hello %d world\n",本质上跟"abc"一样,只是里面混了两种“特殊配料”。 -
字符串里可以出现三种东西
• 纯字符:原样照抄到屏幕
• 转义序列:像\n\t,会被转换成换行、制表符
• 格式符:像%d %s,会把后面提供的变量值“插”进来 - character string → 字符串
format specifications,each of which causes printing of the next successive arguments.
successive = “连续的、相继的”
指事物之间无间隔、一个接一个地出现。在这里就是 “按顺序一个接一个的” printf 里的第 1 个格式符对应第 1 个参数,第 2 个格式符对应第 2 个参数,依此类推。
-
主语
format specifications(格式说明符) -
非限制性定语从句
each of which causes printing of the next successive arguments
• 关系代词which指代前面的format specifications
•each of which≈ “每一个格式说明符”
• 从句谓语causes printing(导致打印)
• 宾语printing of the next successive arguments(对“下一个连续参数”的打印),“把后面连续参数的值打印出来”——of表示“被打印的内容”,printing 是 名词 -
主语 + 逗号 + “each of which” 引导的定语从句,用来说明主语的动作/功能。
- in addition to the standard format specifications described in printf(1)
- “除了 printf(1) 手册页中描述的标准格式说明符之外,(还有/也支持/还包含……)
└─ 介词短语(作状语,表示“除……之外”)
└─ 名词短语(中心词 specifications,被 standard format 修饰)
└─ 过去分词短语(后置定语,修饰 specifications,说明这些规格是在 printf(1) 手册中描述的)
lvalue required as left operand of assignment”这句话的结构可能需要分解。
“required”在这里是被动语态,表示“被需要的”或“必须的”。整个句子的结构是:“lvalue(主语) required(谓语,被动形式) as left operand of assignment(补语)”。所以直译的话是“左值被需要作为赋值运算符的左操作数”,但这样的翻译可能显得生硬。
用户自己翻译成“左值要求作为赋值运算符的左边操作数”,虽然大致意思对了,但“要求”这个词在中文中通常指主动的动作,而这里是被动的情况,所以正确的理解应该是“要求左值作为...”。可能需要调整语序,使其更符合中文习惯。比如,“赋值运算符的左侧操作数需要是一个左值”或者“需要将左值作为赋值运算符的左操作数”。
用户可能希望这个翻译既准确又自然。这时候,我应该考虑中文技术文档常见的表达方式,通常会用“必须”、“需要”等词,比如“赋值操作的左操作数必须为左值”。
赋值运算符的左侧必须是一个左值
(更符合中文技术文档的常见表达)
核心骨架:New function with ...
- with 的作用:表示“带有、附带、具有”(表示属性或伴随状态)。
- 结构:
A with B= “带有 B 的 A”。 - 在这里:
New function with partial application...= “带有部分应用(特性)的新函数”。
2. 修饰关系:...partial application of ...
- of 的作用:表示“所属关系”或“动作的对象”。在这里,它用来解释“部分应用”这个动作是针对谁做的。
- 结构:
application of X= “对 X 的应用”。 - 在这里:
partial application of the given arguments and keywords= “对给定参数和关键字的部分应用”。
“一个带有(对给定参数和关键字的)部分应用的新函数。”
“返回一个新函数,该函数附带了对给定参数和关键字的部分应用。”
“创建一个新函数,它提前绑定了
Back-off restarting failed container randexit in pod myapp-pod_default 这句话是 Kubernetes 中非常经典的一个事件(Event)或状态报错信息,退避”就是:“先别急,往后稍稍,歇一会儿再试
- Back-off:退避(算法)。意思是“暂缓、推迟”。
- restarting:正在尝试重启。
- failed container:启动失败的容器。
- randexit:那个出错的容器的名字(从名字猜,这个容器里的程序可能执行完就随机退出了,或者故意写成了会退出的脚本)。
- in pod myapp-pod_default:
这个报错说明:你的容器里的程序启动后,很快就挂掉(退出)了。Kubernetes 发现容器挂了,就想把它重启。但为了防止“启动-挂掉-重启-挂掉”的死循环疯狂消耗服务器资源,K8s 采用了“指数退避”策略:指数退避是10*2^0 10*2^1 10*2^2 10*2^3...在 Kubernetes 中,当容器陷入 CrashLoopBackOff(崩溃循环退避)状态时,kubelet 正是按照这个指数级增长的规律来推迟重启时间的。正如你所说,第 �n 次重试的等待时间 ��Tn 为:��=10×2(�−1)Tn=10×2(n−1)其中 �n 代表这是第几次尝试重启。2. 实际的时间序列
根据上述公式,Kubernetes 的重启间隔会呈现以下增长趋势:
- 第 1 次失败后:等待 10×20=1010×20=10 秒
- 第 2 次失败后:等待 10×21=2010×21=20 秒
- 第 3 次失败后:等待 10×22=4010×22=40 秒
- 第 4 次失败后:等待 10×23=8010×23=80 秒 (1分20秒)
- 第 5 次失败后:等待 10×24=16010×24=160 秒 (2分40秒)
- ...以此类推
- 第一次挂了,等 10秒 再重启;
- 重启后又挂了,等 20秒 再重启;
- 再挂,等 40秒……
“Back-off restarting failed container” 就是在告诉你:K8s 正在按退避策略,推迟下一次的重启时间怎么解决?
你需要搞清楚randexit这个容器里跑的进程为什么退出。
- 查看日志:运行
kubectl logs myapp-pod_default -c randexit(如果容器完全起不来,加--previous参数看上一次崩溃前的日志)。- 常见原因:
- 程序本身有 Bug,启动报错退出了。
- 容器的主进程(PID 1)执行完脚本就正常退出了(比如你执行了一个
echo hello就结束的脚本,容器也会随之退出)。- 内存不足(OOMKilled)导致被系统杀掉。
ImagePullBackOff 镜像拉取退避是 Kubernetes 中一个非常常见的 Pod 状态,它的含义是:“拉取镜像失败,正在退避重试”。这表示 Kubelet(节点上的代理)尝试从镜像仓库下载容器所需的镜像时失败了,并且由于之前多次尝试都失败了,它现在进入了“退避”模式,即暂停一段时间后再重新尝试,以避免对镜像仓库或网络造成过大压力。

浙公网安备 33010602011771号