﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-高调coding，低调做人-随笔分类-服务器</title><link>http://www.cppblog.com/peakflys/category/19966.html</link><description>peakflys</description><language>zh-cn</language><lastBuildDate>Wed, 26 Mar 2014 15:16:17 GMT</lastBuildDate><pubDate>Wed, 26 Mar 2014 15:16:17 GMT</pubDate><ttl>60</ttl><item><title>说说服务器宕机恢复和负载均衡那些事(上)</title><link>http://www.cppblog.com/peakflys/archive/2014/03/26/206326.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Wed, 26 Mar 2014 08:58:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2014/03/26/206326.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/206326.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2014/03/26/206326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/206326.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/206326.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对于服务器程序而言，尤其是云计算时代的服务器程序，三高标准(高可用、高性能、高扩展)往往是衡量一个优秀的服务器程序的重要指标。本篇文章主要聊聊服务宕机恢复(高可用的重要内容)、负载均衡(高扩展、高可用的主要内容)。以下内容均属个人工作中的见解，如有不妥之处，欢迎指正。 ----peakflys&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2014/03/26/206326.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/206326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2014-03-26 16:58 <a href="http://www.cppblog.com/peakflys/archive/2014/03/26/206326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一场虚惊——记大量心跳超时事件的排查</title><link>http://www.cppblog.com/peakflys/archive/2013/05/27/200350.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Mon, 27 May 2013 08:56:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2013/05/27/200350.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/200350.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2013/05/27/200350.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/200350.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/200350.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:    项目终于上线了，伴随着人数的逐步上升，最近查看日志，发现了大量连接超时的日志。项目中使用的是TCP长连接，为了保证网络资源及时有效的释放，程序中是1分钟一次心跳，3分钟无心跳即认为超时。此为本文的背景<br>   相对于TCP连接建立时的三次握手，我想很多人对断开连接的四次招呼就不是那么熟了，这里先谈一下TCP的断开，下面给出TCP断开连接的过程图：&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2013/05/27/200350.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/200350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2013-05-27 16:56 <a href="http://www.cppblog.com/peakflys/archive/2013/05/27/200350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP滑动窗口易错处，后来者戒之！</title><link>http://www.cppblog.com/peakflys/archive/2012/11/29/195794.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Thu, 29 Nov 2012 06:17:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/11/29/195794.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/195794.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/11/29/195794.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/195794.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/195794.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     前段时间研究分布式时写了一个可扩展的服务器组程序，服务器组之间通信时老是达不到想要的性能。后来抓包排查，原来是TCP滑动窗口引起的问题，本来是很基础的东西，奈何当初没有太在意，导致错误的产生，现在详细写出来，忘不太清楚者警惕！&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/11/29/195794.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/195794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-11-29 14:17 <a href="http://www.cppblog.com/peakflys/archive/2012/11/29/195794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由段错误引申出的缓冲区溢出攻击分析</title><link>http://www.cppblog.com/peakflys/archive/2012/10/24/193789.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Wed, 24 Oct 2012 08:51:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/10/24/193789.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/193789.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/10/24/193789.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/193789.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/193789.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前段时间在写《段错误造成的常见诡异宕机情况总结(中)》时，分析到 程序中数据写超时有可能写到this指针所在的地址里面，导致最终诡异的宕机。其实网络攻防里常用的缓冲区溢出攻击也是这个道理，除了使用户程序甚至计算机挂掉外，还有可能执行攻击者想执行的任何程序，这篇文章主要详细剖析一下第二种攻击的方法以及现在Linux(包括各种修改版本，例如Android)、Windows下常使用的防范措施。&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/10/24/193789.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/193789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-10-24 16:51 <a href="http://www.cppblog.com/peakflys/archive/2012/10/24/193789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>段错误造成的常见诡异宕机情况总结(下)</title><link>http://www.cppblog.com/peakflys/archive/2012/10/08/193009.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Mon, 08 Oct 2012 08:13:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/10/08/193009.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/193009.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/10/08/193009.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/193009.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/193009.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 国庆长假终于结束了，从拥堵的噩梦中醒来，该收收心重新回到工作中来了（顺便吐槽一下闹心的长假，平时工作没时间出去，放了长假了 又不敢出去，路上耗费大量的时间和金钱也算了，弄的整个人也身心疲惫的……）<br>   言归正传，接着上回宕机情况说。之前比较难找的宕机错误已经在前两篇随笔里说过了，这次要说的是前不久一个同事遇到的。他要做一个录像功能，每次把客户端的消息转储成文件时挂掉。大致代码如下：&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/10/08/193009.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/193009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-10-08 16:13 <a href="http://www.cppblog.com/peakflys/archive/2012/10/08/193009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>段错误造成的常见诡异宕机情况总结(中)</title><link>http://www.cppblog.com/peakflys/archive/2012/09/21/191463.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Fri, 21 Sep 2012 05:32:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/09/21/191463.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/191463.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/09/21/191463.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/191463.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/191463.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:    上面一种情况是自己内存写超了，写到了用户态别的结构所在的内存，特点就是core文件显示 别处对象的内容乱七八糟，且一般是在对象析构时发生，这次讲解一下，自己把自己写坏的情况。&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/09/21/191463.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/191463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-09-21 13:32 <a href="http://www.cppblog.com/peakflys/archive/2012/09/21/191463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>段错误造成的常见诡异宕机情况总结(上)</title><link>http://www.cppblog.com/peakflys/archive/2012/09/20/191413.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Thu, 20 Sep 2012 11:01:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/09/20/191413.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/191413.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/09/20/191413.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/191413.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/191413.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:    因为内存问题，程序崩溃对于每一个c++程序员而言是很常见的问题，而段错误引起的宕机，恐怕是平时遇到的最多的情况，除了常见的指针未判空和野指针问题外，还有不少是比较头疼的情况，空指针因为定位很直接方便，这里就不说了，野指针因为它的异时异地特性，很难排查，这个以后我会详细说一下的，这里仅仅介绍一下其他也比较头疼的段错误宕机情况，这是之前自己总结的笔记，前段时间又看到了，感觉对很多人 应该是有用的，于是总结出来供大家参考。&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/09/20/191413.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/191413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-09-20 19:01 <a href="http://www.cppblog.com/peakflys/archive/2012/09/20/191413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>论epoll的使用</title><link>http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Sun, 26 Aug 2012 10:33:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/188344.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/188344.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/188344.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:    前几天回答一个问题，是关于我们项目中使用的epoll模式的，因为记不大清了，感觉应该使用的就是epoll的高速模式，也就是ET(edge-trigger)模式。这两天闲暇的时候，打开代码又看了一下，在epoll事件注册时并未标记ET模式，看来实际使用的是epoll默认的LT(level-trigger )模式，为什么呢？使用LT意味着 只要 fd 处于 readable/writable 状态，每次 epoll_wait 时都会返回该 fd，系统开销不说，自己处理时每次都要把这些fd轮询一遍，如果fd很多的话，不管这些fd有没有事件发生，epoll_wait 都会触发这些fd的轮询判断。&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/188344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-08-26 18:33 <a href="http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>论大小端</title><link>http://www.cppblog.com/peakflys/archive/2012/08/19/187660.html</link><dc:creator>peakflys</dc:creator><author>peakflys</author><pubDate>Sun, 19 Aug 2012 04:17:00 GMT</pubDate><guid>http://www.cppblog.com/peakflys/archive/2012/08/19/187660.html</guid><wfw:comment>http://www.cppblog.com/peakflys/comments/187660.html</wfw:comment><comments>http://www.cppblog.com/peakflys/archive/2012/08/19/187660.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/peakflys/comments/commentRss/187660.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/peakflys/services/trackbacks/187660.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:   最近挺忙的，也没时间写点东西，一直在忙下一个资料片的事情，前几天在群里见有人问关于大小端的事情，这里说一下。<br>  对于跨平台的程序或者所用数据牵扯到不同平台的程序(例如网络编程)，大小端字节序是个值得考虑的事情。本文主要讨论一下网络编程方面的大小端问题。(by peakflys)&nbsp;&nbsp;<a href='http://www.cppblog.com/peakflys/archive/2012/08/19/187660.html'>阅读全文</a><img src ="http://www.cppblog.com/peakflys/aggbug/187660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/peakflys/" target="_blank">peakflys</a> 2012-08-19 12:17 <a href="http://www.cppblog.com/peakflys/archive/2012/08/19/187660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>