随笔分类 - Linux命令&系统
摘要:TCP层为了可靠性,还额外需要解决3个大问题:丢包(网络分组在传输中存在的丢失)、重复(协议层异常引发的多个相同网络分组)、延迟(很久后网络分组才到达目的地)。另外,是不是还有顺序。 涉及到滑动窗口和拥塞控制。重要的一点:TCP协议是保证了整体网络的性能的最优化。而不是本身端对端两点网络性能的最优化
阅读全文
摘要:accept的时候,三次连接是建立的。 有一种DOS攻击是SYN FLOOD,就是大量的SYN到达,但是没有ACK,无法建立起连接。 防御的方法,有多种,如下: 比如,禁止部分源地址; 到达一定阈值之后,丢弃半连接。 延缓TCB等数据结构的分配时间。 采用防火墙或者proxy,来过滤。
阅读全文
摘要:这个网页里面写了: http://blog.csdn.net/plusboy/article/details/1523308 其可靠性必须由上层应用实现。一般都会采用消息重传来实现其可靠性,采用消息重传的时候有两种方式,一种是发送者发起,另一种是接收者发起。 前一种接收者发的是ACK。发送者收到AC
阅读全文
摘要:这篇写的很好 http://blog.chinaunix.net/uid-24774106-id-3065234.html UNIX系统编程,这本书中有大量的重启系统调用,例如下面的例子:选自P50, 还有对read,write的重启操作。 UNP volume1中提到slow system cal
阅读全文
摘要:用户程序中的睡眠: sleep() usleep() nanosleep() sleep()和nanosleep()都是使进程睡眠一段时间后被唤醒,但是二者的实现完全不同。Linux中并没有提供系统调用sleep(),sleep()是在库函数中实现的,它是通过调用alarm()来设定报警时间,调用s
阅读全文
摘要:接上一篇,复习一下 启动php或hhvm: 启动nginx或lighttpd: 从php切换到hhvm 如果使用hhvm,则需要切换webserver的配置到hhvm。Nginx配置切换需要修改webserver/conf/vhost/php.conf: 这是因为fast-cgi监听的方式有两种,一
阅读全文
摘要:怀疑CPU存在瓶颈,可用sar -u 和sar -q来看,怀疑I/O存在瓶颈,可用sar -b、sar -u和 sar-d来看 sar –W 查看页面交换发生状况 [root@localhost ~]# sar -W 14时30分01秒 pswpin/s pswpout/s 14时40分01秒 0.
阅读全文
摘要:公司装的是centos,centos其实就是无支持版的redhat. redhat是一个服务器的操作系统它的稳定性是比较高的,同时提供在线管理服务,服务器故障预警等,当然前提是要购买昂贵的服务。 Suse是德国的一家公司开发的一个linux,个人认为在服务器这块性能跑不过redhat。 而ubunt
阅读全文
摘要:这篇文章讲的不错 http://blog.csdn.net/liujiyong7/article/details/43346829 先说结论吧: 1. Linux多进程accept系统调用的惊群问题(注意,这里没有使用select、epoll等事件机制),在linux 2.6版本之前的版本存在,在之
阅读全文
摘要:这篇写的不错 http://www.cnblogs.com/linguoguo/p/5511293.html Nginx为啥性能高-多进程异步IO模型 1. 对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。 2. 采用独立的进程,
阅读全文
摘要:开宗明义,epoll以及BSD的kqueue就是推出来解决 C10K的。Linux2.6 2003年左右。 可以看这篇文章 http://www.oschina.net/translate/the-secret-to-10-million-concurrent-connections-the-ker
阅读全文
摘要:我觉得这篇讲的不错。 http://blog.csdn.net/c_cyoxi/article/details/8673645 Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段。 关闭:通过加TCP_NODELAY选项。 TCP_CORK 选项: 所谓的CORK就是塞子的意思,形象地
阅读全文
摘要:scons、gcc、gdb、valgrind、gcov SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了。 gconv 覆盖率 (1) 编译 # gcc -fprofile-arcs -ftest-cover
阅读全文
摘要:sigset_t set sigemptyset(&set) :清空阻塞信号集合变量 sigfillset(&set) :添加所有的信号到阻塞集合变量里 sigaddset(&set,SIGINT):添加单一信号到阻塞信号集合变量 sigdelset(&set,SIGINT):从阻塞信号集合变量中删
阅读全文
摘要:编译 #gcc -g -o test test.c 内存检查#valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test Memcheck 能够检测出内存问题,关键在于其建立了两个全局表。 对于进程的整个地址空间中的每一
阅读全文
摘要:之前有一篇文章: http://www.cnblogs.com/charlesblc/p/6341605.html 今天又看到其他的一篇: http://www.cnblogs.com/fengyv/p/3775953.html 补充一下: 运行流程如下:1、sendfile系统调用,文件数据被co
阅读全文
摘要:http://blog.csdn.net/conowen/article/details/7256260 这里有几种计算平台的Flynn分类法 GPU是SIMD 多核CPU是MIMD 硬件结果多核处理器是 SMP Symmetric Multi-Processor
阅读全文
摘要:mount -t tmpfs tmpfs ~/build -o size=1G -t 对应的是类型 -o 对应的是选项 tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。 tmpfs是基于Linux的虚拟内存管理子系统,面向普通用户的
阅读全文
摘要:首先要理解JVM内存模型,可以参考我之前的文章。 然后C++里面其实有一样的指令排序的问题。虽然C++11里面针对happens-before规则做了一些语义上面的支持。但是普通C/C++没有做这些支持。 需要了解我们平时工作所在的x86对于指令排序是可能 store-load重排序的。 而一般最常
阅读全文
摘要:http://www.linuxidc.com/Linux/2012-11/74486.htm 一共三篇 中断一般分为三类: 1、由计算机硬件异常或故障引起的中断,称为内部异常中断; 2、由程序中执行了引起中断的指令而造成的中断,称为软中断(这也是和我们将要说明的系统调用相关的中断); 3、由外部设
阅读全文