谈debug的工具与思路

存储架构 2018-05-26

下面分享一下我这些年来的经验:

  1. netstat -a
    可以看到所有网络链接,端口占用情况。微服务(分布式)跨机器访问时,出现问题可以用这个工具排查一下。
  2. iptables
    linux的ip 过滤与 NAT 工具。开放外网访问端口,关闭端口,dns 访问(UDP 的56端口)等等都需要用到。
  3. dig
    解析 dns 工具,dns 有没有解析到正确地址,经过了哪些 dns 服器?
  4. ps aux
    这个查看所有进程状态的工具自不必说,不过值得一提的是,有时 SA 把程序的配置乱放,你就可以通过此命令看看进程运行的命令(COMMAND 栏)是否有指定配置文件。没有的话就要去查查软件的默认配置是什么了。
  5. 一些软件如 rabbitmq,mongo 等,在不确定有没有消息到,mongo 驱动有没有写对的时候,可以查看该软件的 log(是的,它们有详细的 log)。如 rabbitmq 有GUI 管理界面,可以看到所有 exchange, routing-key以及进来的消息,甚至哪些程序绑定了该 mq。 mongo 则可以选择打 log 的详细程度,自然收到了什么消息,返回什么也会打出来。
  6. top
    , iostat
    , mongostat
    等软件自带的监控工具,自然是监控性能的利器。
  7. curl -X POST
    来发 post 请求,比 postman 要方便些。
  8. chrome
    自带的inspect 检查工具,就算是后端开发者,也值得好好研究。可以查 网页请求情况(copy curl 参数),查看 cookies 情况等。

浅谈缓存

因为每次取真正的数据时,要付出高昂的代价(如操作系统从硬盘读取数据而不是从内存读,软件从数据库拿数据而不是从内存中拿),所以需要缓存来存放这些数据,以便能够以低代价取出。

但因为缓存是有限的(内存有限),所以能存放的数据有限,那么就需要一个算法来解决这个问题。

小专栏

责编内容by:小专栏 (源链)。感谢您的支持!

您可能感兴趣的

不能不说爱上你:async_hooks 不能不说爱上你:async_hooks 虽然说做后端开发也有好几年了,但是真正熟悉的只是 node.js ,对于其它的语言都只停留在初级阶段。第一次了解到 thread local 是在系统接入 zipkin 的时候,另外一个后端开发的同事在抱怨不知道在 node.js 中怎么可以方便的...
Getting the TabItem Index Using the Data Link How to get the data from the parent class using jQuery Please, help me I'm having trouble on getting data from my parent div cla...
消息中间件选型分析:从Kafka与RabbitMQ的对比看全局... 一、前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重...
微软通过Cosmos DB向MongoDB和Cassandra发起挑战... 看新闻很累?看技术新闻更累?试试 下载InfoQ手机客户端 ,每天上下班路上听新闻,有趣还有料! 当人们对微软感到失望时经常会说“拥抱、扩展、消灭”。表明上看,这话说的是技术公司设法吸引竞品的客户,但是具体的策略比那复杂。本报道将使 用Azure Cosmos DB 作为例子...
Modelling blogs and ratings in mongodb and nodejs I have a blogs collection that contains title, body and agrregate rating that the users have given to them. Another collection 'Ratings' whose schema ...