关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

恒生电子面试题总结

发布时间:2023-06-27 13:00:52

CPU使用率突然飙升,如何排查

 

1.找出哪个进程占用了cpu

top -c

   

 2. 键大写的P,对CPU使用率排序,

3.查看该进程下占用 CPU 最高的线程

top -Hp PID 显示进程PID下所有的线程

   

输入大写P,线程按照CPU使用率排序

4.定位问题代码

将线程号转化成16进制,之所以需要转化为16进制,因为jvm的进程快照中线程显示是16进制的。

然后我们使用jstack命令,拉到26045进程快照信息,输出到文件中,方便我们查看。

jstack -l 26045 > ./26045.stack

   

然后我们cat该文件,并且grep通过16进制找一下该线程

cat 26045.stack | grep '65be' -C 20

   

至此我们就已经找到了问题代码在哪了。


什么情况下会使用索引,什么时候不用?


什么时候需要创建索引


主键自动建立唯一索引


频繁作为查询条件的字段应该创建索引

查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找)

查询中统计或者分组的字段;


什么时候不需要创建索引


频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件

where条件里用不到的字段,不创建索引;

表记录太少,不需要创建索引;

经常增删改的表;

数据重复且分布平均的字段,因此为经常查询的和经常排序的字段建立索引。注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引。


索引的优缺点


优点:


通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性。

可以加快数据的检索速度

可以加速表与表之间的连接

在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间


缺点


创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

索引需要占用物理空间,数据量越大,占用空间越大

会降低表的增删改的效率,因为每次增删改索引,都需要进行动态维护


线程加锁会造成什么问题?


加锁通常会严重地影响性能。线程会因为竞争不到锁而被挂起,等锁被释放的时候,线程又会被恢复,这个过程中存在着很大的开销,并且通常会有较长时间的中断,因为当一个线程正在等待锁时,它不能做任何其他事情。


/template/Home/leiyu/PC/Static