-
2026-01-29 16:54:33
- Linux 系统资源突然耗尽的预警信号
- available接近0就该警觉——它才是真实可用内存,低于总内存10%(如8G机器长期≤800M)表明内核正频繁交换,响应延迟明显;dmesg中“Killedprocess”即OOM已发生,需查oom_score_adj和RSS定位真凶。
-
152
-
2026-01-29 17:02:02
- Python 魔术方法与面向对象设计的结合
- 真正影响对象生命周期的魔术方法是__new__、__enter__、__exit__和__del__;其中__enter__/__exit__是资源清理的可靠入口,__new__用于实例化前控制,__del__不保证执行时机。
-
390
-
2026-01-29 17:03:01
-
2026-01-29 17:06:01
- Python 异步代码中的异常传播机制
- async/await异常不会自动冒泡,必须await协程或用asyncio.run()驱动才会触发;未await的任务异常会静默丢失或仅记录日志;Task.exception()可安全获取异常,而task.result()会重抛;asyncio.run()不捕获子任务异常;CancelledError需显式处理以确保资源释放。
-
911
-
2026-01-29 17:07:39
-
2026-01-29 17:08:36
- Linux 负载高但 CPU 空闲的常见原因
- 负载高但CPU空闲是因为大量进程处于D状态(不可中断睡眠),它们不占CPU却计入loadaverage;主因是I/O阻塞(如慢盘、NFShard挂载、驱动异常)或内存直接回收。
-
183
-
2026-01-29 17:09:36
-
2026-01-29 17:14:57
- Python 异步编程常见误区总结
- async/await不等于自动并发,单个await是顺序等待,需用asyncio.gather()或create_task()显式并发;CPU密集型任务应使用ProcessPoolExecutor;未await可等待对象会导致逻辑跳过或静默失败;异步上下文须用contextvars而非threading.local。
-
610
-
2026-01-29 17:24:54
-
2026-01-29 17:25:37
- 装饰器如何实现“只在特定环境下生效”的运行时条件
- 装饰器必须将环境检查延迟到函数调用时执行,而非定义时;应通过闭包在wrapper中读取os.environ,支持参数化策略、本地缓存配置、测试时用monkeypatch临时修改环境变量。
-
773