马年第一帖,记录一下过去的2013看过的技术blog
linux
1. 理解inode http://www.ruanyifeng.com/blog/2011/12/inode.html
2. 下厨房mysql数据丢失事故总结 http://tech.xiachufang.com/?p=18
3.
posix_fadvise清除缓存的误解和改进措施 http://blog.yufeng.info/archives/1917
Note: 以上三篇都是和文件系统和pagecache相关,特别是下厨房事件,了解linux的文件系统非常重要
4. rysnc的核心算法 http://coolshell.cn/articles/7425.html
5. fork,你拿什么证明你的写时拷贝(COW) http://www.cnblogs.com/feisky/archive/2013/03/05/2944164.html
懂了fork的cow,才会明白redis的bgsave,为什么极端情况会占用2倍内存
6. direct io使用 http://lenky.info/archives/2012/05/16/1660
pagecache有时候我们不需要,page cache会耗内存,那就用direct io吧
7.
Linux Used内存到底哪里去了?
http://blog.yufeng.info/archives/2456
8. 霸爷的ppt http://blog.yufeng.info/ppt
网络
1. 一个很全的技术博客 http://dirlt.com/
2. NIO的selector.wakeup的实现 http://www.iteye.com/topic/791244
3. 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(一) http://blog.csdn.net/cutesource/article/details/6192016
4. 经典的NIO架构网络服务器模式,不仅是Http服务器,可以应用到其他任何场景的高性能网络服务器
5. 高性能网络编程 http://blog.csdn.net/russell_tao/article/details/18711023
6.《深入理解Nginx》的作者blog 高性能网络编程的一系列文章
7. NFS-RPC框架优化过程(从37k到168k) http://bluedavy.me/?p=334
这篇文章绝对值得一看,RPC框架的优化历程涉及IO以及多线程并发,其中的经验可以借鉴到其它系统, 特别是第三点,IO线程和业务线程分离,但如何如何在IO线程和业务线程之间高效地传递数据也是一个关键的性能点,JUC的threadpool多用blocking queue实现,execute时会获取锁,这大概就是作者说的线程上下文切换。
8. 600k concurrent HTTP connections, with Clojure & http-kit http://shenfeng.me/600k-concurrent-connection-http-kit.html
一个测试c600k的过程,值得学习,c10k已经是遥远的过去式,看看作者如何实践c600k,c600k不一定用10台测试机,作者采用了10个虚拟ip同时绑定,是不是心动了也想尝试一下!
工具
1. gdb使用 http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml
2. gperftools-httpd分析server性能杂记 http://shenfeng.me/profiling-redis-server.html