首页

Epoll的LT和ET模式

在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable 总结: 这个错误表示资源暂时不够...

TCP与UDP的输出,MSS与MTU之间关系

每个TCP套接口有一个发送缓冲区,可以用SO_SNDBUF套接口选项来改变这一缓冲区的大小。当应用进程调用write往套接口写数据时,内核从应用进程缓冲区中拷贝所有数据到套接口的发送缓冲区,如果套接口发送缓冲区容不下应用程序的所有数据,或者是应用进程的缓冲区大于套接口的发送缓冲区,或者是套接口的发送缓冲区中有别的数据,应用进程将被挂起。内核将不从write返回。直到应用进程缓冲区中的所有数据都拷贝...

Gearman实践  

有三台Centos服务器,192.168.48.152,192.168.48.153,192.168.48.154 首先在三台服务器上都安装了gearman,php gearman扩展 在192.168.48.152上/home/jishipu/gearmantest目录下部署程序: client.php <?php $dips = new...

查看linux系统网络流量  

sar -n DEV 1 10 如果系统没有安装,如果是 CentOS,那么用 yum install -y sysstat 安装。 sar有很多用途,如果要来监控网络流量,使用下面的命令行方式: sar -n DEV interval count 其中,interval是统计时间间隔,以秒为单位;count是总共统计几次,如果为0就不断的统计直到 Ctrl...

git查看某个文件的修改历史

git log --pretty=oneline test.php    //会显示test.php的历次提交记录号,如356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e  git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e  //显示此版本号修改详情

crontab如何指定每小时执行任务

很容易就犯下面的错误。写下来,大家一起注意。 * */1 * * * /root/echo.sh     #错误 0 * * * *   /root/echo.sh     #正确

做一个最简单的数据库  

所有应用软件之中,数据库可能是最复杂的。 MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。 但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。 一、数据以文本形式保存 第一步,就是将所要保存的数据...

数字证书的构成和管理  

1.1 证书的构成和原理 这里对证书的内容做一个详细的介绍。先看下一个证书到底是个什么东西,在windows下查看一个证书时,界面是这样的,我们主要关注一下Details Tab页,其中的内容比较长,我滚动内容后后抓了三个图,把完整的信息显示出来: 上面的步骤结束后,会又弹出一个对话框,里面有三个单选按钮如下: My user ac...

Linux服务器间信任关系建立方法  

在Linux服务器之间建立信任关系,是很多线上服务系统的基础性工作,这样能便于程序在多台服务器之间自动传输数据,或者方便用户不输入密码就可以在不同的主机间完成登录或者各种操作。 一 建立信任关系的基本操作 基本场景是想从一台Server服务器直接登录另一台,或者将Server服务器的数据不需密码验证直接拷贝至Client服务器,以下我们简称Server服务器为S(待发送的数据文件在这台服务器上),...

极速Node.js: 来自LinkedIn的10个性能提升秘籍

【译注】:LinkedIn 最近从 Rails转移到 Node.js 获得了巨大的成功,它砍掉了之前90%的服务器,并使性能提升了20倍。这个消息令很多人把 Node.js 看成了葵花宝典一样的神功,可是练习神功也不是一朝一夕的事,光练招式没有内功也是不成的,更何况还得…那啥…总之不容易啊!那么除了Node.js,LinkedIn 的性能提升还有什么秘密?LinkedIn 的软件工程师 Sh...