不要急
[TOC]
近期的思考。
最近由于工作上的一些难题,让我寝食难安,费了好大劲,暂时算“解决”或者叫掩盖住了问题,但问题始终在那里,我还是没有解决。
一、接口性能问题。这两天我在解决api接口性能上不来的问题,通过一些测试,服务器能达到1.2万每秒(没有特意做系统设置方面的优化),我写的api接口性能只能达到5,500每秒的程度,通过trial-and-error的方法费了不少劲,始终性能提不上来,又定位不到错误。
二、Nginx性能问题。Nginx是一款非常流行的web服务器,印象里支持10万每秒或者100万每秒的并发量应该是很容易的事,不用怎么设置。我在实际使用中,组合使用两台api接口应用服务器,理想情况下的并发量应该是1.1万每秒,double的效果,现在我一顿胡搞,才能达到6,300每秒的样子。Nginx和操作系统设置里面的参数什么意思,为什么给那个值,我都不知道。只知道,这么设置管用了。
三、Redis缓存问题。领导之前问我,你确定读的请求能分发到从库处理么,我非常自信的说是的,文档上这么说的。领导又问,你实际看到了?我说没有。。。我下来自己确认一下。 这周我找时间确认请求是否能分发到从库,结果是真的没有。。。 我修改了代码和在测试环境测试,验证成功了。我以为这个事算结束了。昨天我又突发奇想,生产库也确认一下吧。结果生产库并没有分发请求,还是读主库,我通过排查原来是我redis连接串设置的不符合规定的要求,经过修改验证,生产库终于看到读的请求分发到从库了。
反思我这一周遇到的问题,我有以下几个方面的不足:
一、懒得动手。计算机是一门和实践关联特别紧密的学科,程序执行的结果真正只有看到了,才算ok。程序不管多么简单,也要尽量动手写一遍,运行一下。
二、知识上体系上的问题。我更加体会到自己基础知识体系上的短板。具体是操作系统、计算机网络等等。我喜欢追求新的东西,从过年到现在基本每周都在学习Rust语言,这门语言目标是新时代的C,C++语言,代替底层操作系统方面的编程,学到现在还没入门。我又会想到我学习Go语言,当时和现在也是非常流行的语言,那时想通过学习它找工作用,花了不少时间学,到现在基本也都忘光了。实际我应该花更多的时间学习计算机底层的那些知识,底子打好了,学什么都会更快的。
三、心态上的问题。自己还是心太急,同时也有外界环境的因素。平时的主要精力都用来解决眼前的紧急问题,例如nginx如何配置了,redis怎么使用了,docker(容器技术)怎么用了,程序该怎么写了。这些浏览器一搜就能解决或者照着书上的文档看,一步一步操作,边做边试。翻开我极客时间上买过或者看过的课,很多是光开了个头的。例如:Rust,Docker,Redis。这些技术,我仅仅停留在会用的程序,算是入门吧。
接下来要怎么办呢?
我想接下来砍掉自己开头很多,但没有做完的事情,系统补计算基础知识。最近遇到的并发量问题,我想主要和操作系统和网络相关,同时也和我后台使用的语言C#有关。知识有个先后,高级的技术和新的东西都是建立在底层基础之上的,那就深入学习这几个方面。
- 算法4 LeetCode继续刷
- 学习Linux操作系统(一个月主要做这个)
- 深入学习C# (工作主力语言,要掌握好)
- 工作上遇到的问题,暂时通过搜索,或者请教其他人,解决掉 (1、2、3方面的提高,能反哺第4点)
开干!
2022-03-11 于家中。