- 博客(23)
- 收藏
- 关注
原创 修改Linux内核参数提高服务器并发能力
1.参数设置查看相关的参数sysctl -a|grep tcp_keepalivenet.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_keepalive_probes = 2net.ipv4.tcp_keepalive_time = 160设置相关的参数sysctl -w net.ipv4.tcp_keepalive_time =
2013-03-31 17:43:19 21545 1
原创 PHP FPM设置
假设安装时复制php-fpm文件到php安装目录# cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf那么php-fpm.conf位于# /usr/local/php/etc/php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本。在5.2.x的版本中,php
2013-03-31 16:16:31 2793
原创 bzero, memset ,setmem 区别
bzero 原型:extern void bzero(void *s, int n);用法:#include 功能:置字节字符串s的前n个字节为零。 说明:bzero无返回值。 举例: // bzero.c #include #include int main()
2013-03-29 18:03:48 1127
原创 Linux socket 网络编程 常用头文件
一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。2.数据报式套接字(SOCKET_DGRAM)提供无连接的数据传输服务,不保证可靠性。3.原始式套接字(SOCKET_RAW)该接口允许对较低层次协议,如IP,ICMP直接访问。二 基本套接字系统调有有如下一些
2013-03-29 17:50:15 1021
原创 仿照redis写的nginx开机画面
1、获取文件的flags,即open函数的第二个参数:flags = fcntl(fd,F_GETFL,0);2、设置文件的flags:fcntl(fd,F_SETFL,flags);3、增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞:flags = fcntl(fd,F_GETFL,0);flags |= O_NONBLOCK;fcntl(fd,F_SET
2013-03-29 17:48:37 1157
原创 Linux网络编程一步一步学-epoll同时处理海量连接的代码
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAXBUF 1024#define MAXEPOLLSI
2013-03-28 16:28:23 950
原创 自己动手写HTTP服务--myhttpd
/** sol12.5.c ** ------------------------------------------------------------ A version of webserv that puts some typical CGI variables into the environment before calling exec is sol12.5.c. Thr
2013-03-26 23:01:13 1900
原创 Linux守护进程实现
Linux守护进程#include #include #include #include int daemonize(void){ int fd; switch(fork()) { case -1: return (-1); case
2013-03-20 22:56:14 1059
原创 结构体的两种声明方式:堆上和栈上以及在双链表的应用
一、头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH (这些变量在windows下对应的是include环境变量)※再找内定目录 /usr/include /usr/local/include /usr/lib/gcc-
2013-03-17 22:00:29 2220
原创 linux下使用NetBeans调试libevent库
1.安装libevent参考:http://blog.csdn.net/unix21/article/details/8679269libevent安装在usr/local/libevent下2.安装netBeanshttp://www.netbeans.org3.配置netBeans1)打开项目的属性选项,选择包含目录,把/usr//local/lib
2013-03-17 17:18:55 1661
原创 Linux netstat命令
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息#netstat从整体上看,netstat的输出结果可以分为两个部分,一个是Active Internet connections,称为有源TCP连接,另一个是Active UNIX domain sockets,称为有源Unix域套接口。在上面的输
2013-03-17 10:39:24 1124
原创 Libevent调用
1.最基本的打印libevent版本#include #include int main(){ const char *version = event_get_version(); printf("%s\n",version); return 0;}# gcc getVersion.c -o getVersion -levent参考:htt
2013-03-16 23:33:48 1038
原创 Linux软连接和硬链接
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一
2013-03-16 22:36:30 826
原创 位图排序
位图排序是一种效率极高(复杂度可达O(n))并且很节省空间的一种排序方法,但是这种排序方法对输入的数据是有比较严格的要求(数据不能重复,大致知道数据的范围)。位图排序即利用位图或者位向量来表示集合。举个例子,假如有一个集合{3,5,7,8,2,1},我们可以用一个8位的二进制向量set[1-8]来表示该集合,如果数据存在,则将set相对应的二进制位置1,否则置0.根据给出的集合得到的set为{1,
2013-03-15 23:29:19 661
原创 Trie树
Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。一.Trie树的原理利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。下面以英文单词构建的字典树为例,这棵Trie树中每个结点包括26个孩子结点,因为总共有26个英文字母(假设单词都是小写字母组成)。则可声明包含Trie树的结点信息的结构体
2013-03-15 22:57:38 953
原创 Linux环境网络库
安装libevent官网:http://libevent.org/ 书籍:http://www.wangafu.net/~nickm/libevent-book/Libevent参考手册翻译:http://blog.csdn.net/laoyi19861011/article/category/831215Libevent参考手册翻译增加:http://blog.si
2013-03-15 18:55:06 1362
原创 TCMalloc:线程缓存的Malloc
转载自:http://shiningray.cn/tcmalloc-thread-caching-malloc.html作者:Sanjay Ghemawat, Paul Menage原文翻译:ShiningRay动机TCMalloc要比glibc 2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试过的malloc都快。ptm
2013-03-13 10:34:55 941
原创 linux常用命令
#man -k 函数 #man 返回的数字 函数# man -k file | grep umask格式化代码:# indent tinyfastcgi.c fprintf(stdout, "spawn-fcgi: waitpid返回值>>> %d\n", waitpid(child, &status, WNOHANG)); fprintf(s
2013-03-13 09:53:07 846
原创 自己写的哈希表以及解决哈希冲突
哈希表就是键值key-value对,使用hash函数让key产生哈希值,当不同的key产生相同的哈希值时就是哈希冲突了,产生哈希冲突可以使用拉链法。hash.c#include #include #include #include "hash.h"static unsigned int table_size[] = {7, 13, 31, 61, 127, 251, 509
2013-03-10 20:31:25 1195
原创 Redis队列的应用
很多书都说指针不是数组,但是似乎指针和数组又有某种联系。其实,指针是变量,数组也是变量,指针和数组本身不是一回事,有没有关系,但是因为指针和数组都会涉及地址,所以指针和数组可以互相转换!hash.c#include #include #include #include "hash.h"int main() { int i; struct hash_table *
2013-03-09 20:18:24 1037
原创 深入理解malloc和free
指针并非只指向一个变量,指针指向的是地址,也可以理解为数组的首地址。返回数组基本上都是使用返回指针的方式。不过需要注意的是,不要返回局部数组变量的指针,因为在函数运行结束后,栈空间将被释放,指针操作会很危险。可以用参数传递指针给函数,或者在函数中声明静态化局部变量或者使用全局变量等变通方法。p只是指向9个int大小的地址,但是却可以有p[0],p[1]等,但是p[10]也可
2013-03-07 10:57:08 1531
原创 自己写的单链表
link.c#include #include #include #include #include "link.h"/** ** 这是一个计算HASH值的算法 **/int time33(char* arKey,int arlength){ int h = 0; int i; for(i=0;i<arlength;i++){
2013-03-04 22:25:16 555
原创 利用Apache的ab命令做Benchmark性能测试
源码:http://code.google.com/p/flexihash/https://github.com/pda/flexihashconsisten_hash.class.php/*** Consisten Hashing**/class ConsistenHash {private $_targetNum = 0;
2013-03-01 11:08:54 554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人