字节二面
八股巨多,以下是没见过的
1 text可以做索引吗
2 text和varchar的区别
3 varchar可以多大
4 top的cpu load是怎么计算的
5 拥塞控制
6 zset的skiplist高度设置
7 linux查看线程状态的命令
算法: 二叉树之字遍历
1 text可以做索引吗
2 text和varchar的区别
3 varchar可以多大
4 top的cpu load是怎么计算的
5 拥塞控制
6 zset的skiplist高度设置
7 linux查看线程状态的命令
算法: 二叉树之字遍历
全部评论

?top的cpu load怎么计算的这是哪门子奇葩问题
接好运
看了后最绝望的是,有些之前背过,现在也忘了何况还有些没见过,这八股什么时候是个头啊
1. text可以做索引吗? 做前缀索引,要指定前缀长度
2. text和varchar的区别
varchar用于存储可变长度的字符串,最大字符长度为65532(ascii)
Text:用于存储大文本数据,不需要指定最大长度。不过TEXT类型的字段不能有默认值,不能完全放入内存,可能需要使用磁盘临时表。
3. varchar可以多大 除了一个存储变长字段和一个null字段的 占用3字节 剩下65532 根据单个字符长度决定有多大
4. top的cpu load是怎么计算的 在Linux的top命令中,CPU load是通过/proc/loadavg文件获取的,表示系统在过去1分钟、5分钟和15分钟内的平均运行队列长度(等待CPU处理的进程数)。具体计算:
如果load average值为0,表示没有进程在等待CPU时间
如果值等于CPU核心数,表示CPU刚好满负荷
如果值大于CPU核心数,表示系统超负荷,有进程在等待CPU时间
5. 拥塞控制 拥塞控制是TCP协议中的一个重要机制,用于防止网络过载。主要包含四个算法:
慢启动:连接开始时,拥塞窗口(cwnd)设为1个MSS,每收到一个ACK,cwnd加1,呈指数增长
拥塞避免:当cwnd达到慢启动阈值(ssthresh)后,每个RTT只将cwnd加1,呈线性增长
快速重传:如果发送方连续收到3个重复ACK,立即重传丢失的数据包,不等待超时
快速恢复:在快速重传后,设置新的ssthresh为当前cwnd的一半,然后将cwnd设为新的ssthresh加3
6. zset的skiplist高度设置 在Redis的zset(有序集合)实现中,skiplist(跳跃表)的高度(level)设置如下:
Redis的skiplist最大高度为32层,每个新节点的高度是随机生成的,插入新节点起始高度为1,然后进行随机测试,每次有25%的概率增加1层,直到达到32或者随机测试失败
,这种随机性保证了良好的平衡,使得查询、插入、删除操作的平均时间复杂度为O(log n)
7. Linux查看线程状态的命令
* ps -eLf显示所有线程信息,每个线程一行
* top -H显示每个线程的CPU使用情况
* ps -T -p <PID>显示特定进程的所有线程
* htop交互式的进程/线程查看器,比top更直观
确实罕见

text可以做 但是加载到内存中 影响性能,varchar最大35545?多两个字符位存长度,拥塞控制秒,linux查看线程状态就是排查cpu飙高的命令?top top-Hp那些,其他不会
http的拥塞控制?
相关推荐


点赞 评论 收藏
分享
点赞 评论 收藏
分享