Posts

Showing posts from April, 2018

How to write logs?

The best practice: https://logmatic.io/blog/beyond-application-monitoring-discover-logging-best-practices/

.Net Contention Rate

Image
在这之前我对Contention Rate一无所知。 贴个有用的link here. 看了就晕菜。 为什么会想到Contention Rate, 源于我check in了总共五行code的counter change,然后导致了我们prod bed整个bed的contention rate 增加了20倍。与此同时一起增加的还有CPU和memory. 什么是Lock Contention Rate? 这是一个感人涕零的故事。。充分的说明了,自己挖的坑,自己得去填。 必须要记下这次的问题和解决方案。 对于每一个document, 我们会分配相应的partition 来选择upload的section. 但是由于store write rate的限制和fan out的bad impact, 我们只能够在client cache了requests 并且重新按照partition打包并对它进行限流。傻瓜的办法,限流工作就需要在partition level进行。我就对每个partition 都新建了一个rate gate. 每个rate gate是通过对一个semophore来进行相应的acquire和release从而达到限流的目的。在dev/int上还好,partition count都是千级别的level,可是到了production 上就抓瞎了。 partition整整涨了100倍。嘿嘿。然后的然后,我就发现了我们Product bed的cpu time涨了100倍。原因就是contention rate涨了100倍。 怎么办呢?不限流,store跪,限流了,我们跪。 再这里想补充一点,其实,我们好像也不会跪,因为32 cores的cup的cpu time应该是可以达到6400%。 即使单个service的cpu占用率400%。也用了不过8% 这个优化好像有点多余。虽然是好的,但在硬件足够强大的条件下,一切都是无所谓的。 本来想到的是把partition在upload的时候在rehash一下,可是如果rehash的不好,很有可能之前控制流量的那些功夫都白费了。在一个principal的指点下,which is so smart. 我可以对thread 本身加rate gate,然后保证在同一时刻只有一个partition在被一个...

Machine Learning 从零开始

从零开始的定义是,什么都不懂。既然如此,当然从最基本的什么是machine learning说起。如有说的不对的地方,欢迎指正。 Machine Learning 机器学习,顾名思义就是让机器拥有学习的能力。问题来了,什么是学习能力呢?我们又是怎样让机器拥有学习的能力?回溯我们自己多年来的学习生涯,很容易发现人类对于新事物的学习方法和学习能力都是建立在经验和认知的基础上。那我们是否可以为机器构建类似的经验和认知系统呢?答案是肯定的,否则我们的邮箱就会被垃圾邮件填满,脸书和instagram上也不会有那些你感受不到是广告的广告,当然最直接的是机器学习也不会有如今的热度。从最本源上说,人类的经验其实就是人类自己的大数据, 而人们总爱说的"根据我的经验"其实就是人类在无意识的状态之下对自己的数据库进行分析总结然后对未来事件加以预测。如果经验数据足够多,总结的方向对了,预测的准确度也会相对提高。当我们将人类的经验之谈和学习能力分析到这里,机器学习的定义自然呼之欲出。 机器学习就是让计算机系统通过对已有数据的分析总结,学习如何对未来事件进行预测。 这里出现了机器学习的Sugar Daddy和Sugar Mommy,数据和方法。 Deep Learning 先把几个概念链接扔这里,待我慢慢总结整理。 Go through some basic ML/DL concepts: - machine learning ​ https://en.wikipedia.org/wiki/Machine_learning - deep learning ​ https://en.wikipedia.org/wiki/Deep_learning - loss function ​ https://en.wikipedia.org/wiki/Loss_function - log loss ​ http://wiki.fast.ai/index.php/Log_Loss - gradient descent ​ https://en.wikipedia.org/wiki/Gradient_descent - mini-batch, SGD, ​ https://en.wikipedia.org/wiki/Stochast...