- 请简单说一下python的垃圾回收机制
1 | 核心机制:Python 的垃圾回收机制主要由 引用计数、标记-清除 和 分代回收 三部分组成,共同管理内存中无用对象的回收。 |
列表和元祖和字典和集合的区别


pod起不来的原因一般都有啥?
首先kubectl get pods -n <namespace>,查看错误提示是啥:
Pending:未调度或资源不足。
CrashLoopBackOff:容器启动后立即崩溃。
Error:容器启动失败。
ImagePullBackOff:镜像拉取失败。
然后 kubectl describe pod <pod-name> -n <namespace> 查看pod详情。
然后 kubectl logs <pod-name> -n <namespace>查看容器日志,如果容器已崩溃,再加上--previous 。
如何快速定位Pod处于Pending状态的原因?
当Pod处于 Pending 状态时,通常表示Kubernetes调度器(Scheduler)无法为Pod分配节点。kubectl describe pod-n 看一下pod详细信息,重点关注 Events 部分,通常会直接提示错误原因,例如:
a.资源不足(Insufficient CPU/Memory)
b.节点选择器(NodeSelector)不匹配,此时需要查看标签kubectl get nodes –show-labels
c.污点(Taint)与容忍度(Toleration)冲突,此时需要kubectl describe node| grep Taints 查看污点
d.持久卷(PersistentVolume)无法绑定gitlab冲突处理?
首先git checkout dev你从当前分支切换到指定的分支dev。
git pull origin dev 拉取最新代码(Pull),确保你本地的代码是最新的。git status 查看哪些文件发生了冲突,比如出现了both modified: app.py,这说明app.py文件存在冲突,然后处理具体的冲突。
然后git add app.py 将修改后的文件标记为冲突已解决。
下一步是git commit -m "Resolved merge conflict"提交合并(Commit)。
最后git push origin dev将代码推送到远程仓库。
- python如何在一个函数内部修改全局变量?
函数内部global声明 修改全局变量, 比如:
1 | a = 5 |
- python里,map()函数有用过么?
map()函数可以将一个函数应用到一个序列上的每一个元素,并返回一个新的迭代器。举个例子:
1 | # 定义一个函数,计算一个数的平方 |
- 统计字符串每个单词出现的次数”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h”
1 | from collections import Counter |
list里的append和extend的区别是啥?
list里的+方法等价于extendCPU 使用率里的%usr %system %iowait 这些都是啥?
1 | 用户 CPU 使用率(%usr):包括用户态 CPU 使用率(user)和低优先级用户态 CPU 使用率(nice),表示 CPU 在用户态运行的时间百分比。用户 CPU 使用率高,说明用户态进程占用了较多的 CPU,应该着重排查进程的性能问题。 |
系统的 CPU 使用率很高,却找不到高 CPU 的应用?
有可能是短时应用导致的问题:
a.应用里直接调用了其他二进制程序,这些程序通常运行时间比较短,通过 top 等工具也不容易发现。
b.应用本身在不停地崩溃重启,而启动过程的资源初始化,很可能会占用相当多的 CPU。应用的Metaspace 使用率高,都有什么样的原因?
a. 加载的类数量多,类加载也会导致 CPU升高(少数静态类加载除外)
b. 新类与老类共存(未卸载旧类)
c. Metaspace 泄漏(Memory Leak)
d. JVM 参数配置不当场景题,现在发现由于索引缺失且数据库许久没有清除数据,导致了慢sql问题,你应该如何止血?
这里建议先联系DBA启动“CPU放开”预案,暂时获取到额外的cpu能力,此时索引构建可能会影响线上业务的情况,那么剩下的步骤就是:停止主备同步、备库构建索引、开启数据同步、数据追平后做主备切换。接上面,为什么要在备库创建索引,主库不可以么?
InnoDB 存储引擎下执行CREATE INDEX会 锁表(表级锁),禁止读写操作。可通过 SHOW PROCESSLIST 查看是否出现 Waiting for table metadata lock。即使不锁表,索引构建仍会占用大量内存和 I/O,可能影响性能。如果流量下跌,排查的步骤是什么?
a. 首先先看成功率是否符合预期,以及对应的上游的流量是否也下跌,如果成功率不符合预期,或者上游的流量没有下跌,那么可能是我们自身应用出了问题,需要第一时间判断问题并止血。
b. 如果上游链路也流量下跌,无论是直接依赖还是场景依赖(比如carts2 查看购物车是 buy2 渲染订单的前置步骤)请立即联系上游应用对应的负责人,跟进上游的进展。
c. 如果是单独一个机房或者某个地域出现流量下跌,马上看其他同机房或者同地域的应用是否也同时出现下跌,如果也在下跌立即联系集团侧容灾负责人。这种情况大概率是机房网络或入口网关出现故障。