1.搭建Prometheus
使用 Docker 部署 Prometheus + Grafana 监控平台-阿里云开发者社区
这文章里说的比较清楚,并且看起来很清爽
2.context的详解
平时用到context比较多,但是一知半解,专门找个文章来看看。
go-Context详解_go context-CSDN博客
除了函数提供的功能之外,我觉得最主要的是用来控制父退出的时候,子退出。而子退出不影响父协程。
3.redis scan
今天使用了redis的scan,并且设置了数量,当然是为了分页防止出现天量数据导致压力过大问题。
虽然在使用中,直接进行循环获取导致CPU过高导致了一次宕机,后来给每次获取完成之后都增加了sleep 1ms用速度换压力之后正常执行了。
不过在使用过程中发现个有趣的事情,scan每次返回的数量并不是等于count,而是小于,并且常常会有是0的情况。
专门进行了学习。发现count参数并不是数量,而是槽数
4.logrotate
比如nginx之类的程序没有让日志进行自动分割,导致非常的巨大,logrotate这个很不错,大部分Linux自带的,没有就可以安装一下。其实就是利用crontab来实现定时任务 ,可以参看这个 logrotate
5.top命令
top结果里好多的参数, us,ss之类的 其实是指的user,sys。
可以参看这个 top 参数详解
6.redis 性能优化
最近由于代码错误,导致redis内存暴增,都10个G了,只能写脚本来清理删除掉错误的kv,结果发现内存并没有下降。
在本地环境里重启后倒是下降了,但是线上生产库又不能随意重启。在各种学习之后才知道,需要开启内存回收才行。
7.winmerge
推荐使用,毕竟免费的。