linux高性能服务器之定时器的设计与具体实现

常见的定时器实现三种,分别是:排序链表,最小堆,时间轮。之前用的定时器是基于最小堆的,在定时器数量不多时可以使用, 目前公司用的框架中的定时器是基于简单时间轮的,但是为了支持大范围的时间,每个齿轮的所维护的链表为有序链表,每次插入时先mod出spoke,再从头遍历链表以便将定时器插入到合适位置, 所以本质上还是基于有序链表的。

详解如何批量在数百台linux服务器之间建立SSH免密

概述今天主要介绍一下linux如何批量建立SSH免密的过程,仅供参考。一、批量建立ssh私钥认证1、编译安装expectexpect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装。1.1、安装tclcd /opt/tcl8.4.11/unix.

linux系统中socket错误码:eintr和eagain的处理方法

1、什么是慢系统调用?该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会永远阻塞。

linux进程管理之wait/waitpid处理僵死进程详解

僵尸进程处理客户正常断开但服务器未处理SIGCHLD信号,会使得服务器子进程僵死。设置僵尸进程的目的:维护子进程信息,以便父进程在以后某时候获取。信息包括子进程ID,终止状态,资源利用信息(CPU时间、内存使用量等)。

linux网络编程Socket之RST详解

// 这里我们用于测试,只接收一个连接。用抓包工具抓包:可以看到客户端通过connect方法发起三次握手,发送完第一个SYN分节以后,收到来自服务端的RST分节;

linux异步IO编程实例分析

在Direct IO模式下,异步是非常有必要的。下面我们就来分析一下AIO编程的相关知识。说明:1. 在centos 6.2 上运行通过。

linux疑难杂症:为什么ssh连接服务器需要很长时间?附优化技巧

问题外网服务器用ssh去连其他linux机器,会等待30-60秒才有提示输入密码。1. DNS反向解析的问题OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。

「linux」Socket缓存是如何影响TCP性能的?

针对UDP:这些参数实际的作用跟 SO_RCVBUF 和 SO_SNDBUF 的 socket option 相关。

linux系统编程之文件的内核结构file和dup实现重定向

分析:由上图分析可知,一个进程两次打开同一文件,文件表是不共享的,即各有自己的文件偏移量和打开文件标志,所以两次read不同的fd都是从头开始读取,但V节点表是共享的,在fd2写入更改了inode指向的硬盘数据块,再次read fd1得到的也是更改后的值。

150行代码,手写线程池,每个人都能学会。自行准备linux环境

日志在罗盘的时候每一次都需要写磁盘,它里面带有缓冲区的,但不一定每次都罗盘,这个过程中间也有一个罗盘动作的不管有没有缓冲区,每执行一次log都需要写一次磁盘,这个过程中间你会发现写磁盘的速度是很慢的,对于服务器来说每一次请求,对于有N多个客户端,每个客户端往服务端发送请求,