网络编程
cleanfield
匍匐前进
展开
-
netlink学习
从inotify引出auditd,从auditd引出netlink,从netlink引出libnl和libmnl原创 2024-01-31 14:32:57 · 1344 阅读 · 0 评论 -
redis写操作性能
redis写操作性能 局域网10000次写操作耗时 单位Byte 单位秒 2 -1376 1.7-2 1377-1800 2.7-2.8 1900-10000 2.9-4 15000-50000 4-6 70000 7.7 ...原创 2020-11-26 17:20:33 · 745 阅读 · 0 评论 -
php中获取system或者passthru执行中的标准输出内容
ob_start();//passthru("./get_lib.sh $input_path");system("./get_lib.sh $input_path");$all_names_str = ob_get_contents();ob_end_clean();这里的$all_names_str就是执行system接口时,./get_lib.sh $input_path所有的标准输出内容原创 2020-05-29 11:23:17 · 734 阅读 · 0 评论 -
php中的pb搜索所有子结构的方法
1.通过最顶层结构检索到所有子结构1)get_lib.sh#!/bin/bashgrep -F '\Pp2\' proto/$1.php | grep "=> " | awk -F' ' '{print $3}' | sed "s/'//g" | awk -F'\' '{print $3}'2)get_all_struct.php<?phpfunction get_file_name($input_path, &$global_struct_list){ .原创 2020-05-29 11:19:02 · 326 阅读 · 0 评论 -
redis的pipeline机制解析与注意事项
redis的pipeline机制 主要的两个函数:1.redisvAppendCommand将命令拷贝到context的obuf里2.redisGetReply:1)从reply队列里面返回最前面的reply,如果队列为空,继续后面的操作2)如果发现obuf中有数据没有发送,那么发送cmd3)等待回包(server会把cmd中所有的处理做完,然后回包,appand过几次原创 2014-07-29 18:30:52 · 15974 阅读 · 1 评论 -
从hiredis使用出core谈谈redis多线程的使用http://my.oschina.net/jungleliu0923/blog/202948
原文地址:http://my.oschina.net/jungleliu0923/blog/202948转载 2014-07-02 10:18:19 · 2469 阅读 · 0 评论 -
追踪mysql阻塞的问题
这两天总是会出现fcgi程序挂住,不能继续处理的问题,通过日志发现是在mysql的execute接口出问题,strace进程看到 strace -p 3497Process 3497 attached - interrupt to quitread(5, 而又通过lsof -p pidxxx 6155 xxx 5u IPv4 1631原创 2012-02-16 19:00:13 · 4888 阅读 · 0 评论 -
php网页解析器的应用 simple_html_dom
include_once('simple_html_dom.php');function parse_html($url){$opts = array('http'=>array('method'=>"GET",'timeout'=>20,));//设置超时$context = stream_context_create($opts);原创 2011-12-30 17:04:04 · 3056 阅读 · 0 评论 -
sphinx kill-list设置
官方文档:*******************************************************************************************************************11.1.16. sql_query_killlist:Kill-list查询用于得到Kill-list的查询。可选选项,默认为空(不设定查询)原创 2011-11-15 17:46:24 · 3212 阅读 · 0 评论 -
fcgi作为客户端需要注意的几点
fcgi作为中间层,需要与后端server通信进行数据处理,这里需要注意一下几点:1.要做好超时处理,fcgi跟cgi不同,往往只有几个固定数量的进程,与server类似,因为如果一个fcgi进程挂住会导致整个fcgi逻辑层的处理能力下降N分之一(N为fcgi进程数)。这里的原创 2011-08-18 23:42:52 · 2074 阅读 · 0 评论 -
The Google File System中文版
源地址:http://blademaster.ixiezi.com/谷歌论文地址:http://labs.google.com/papers/gfs.html 译者:alex摘要我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供转载 2011-06-30 10:33:00 · 673 阅读 · 0 评论 -
Bigtable:一个分布式的结构化数据存储系统
源地址:http://blademaster.ixiezi.com/谷歌论文地址:http://labs.google.com/papers/bigtable.html Bigtable:一个分布式的结构化数据存储系统译者:alex摘要Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Googl转载 2011-06-30 10:30:00 · 1283 阅读 · 0 评论 -
阻塞socket上read/write出现errno为EAGAIN的原因解密
对EAGAIN的一次重新认识,blocking的socket读写也会有EAGAIN原创 2014-12-01 18:14:30 · 33522 阅读 · 8 评论 -
apache fcgi机制核心实现代码
/* * This handles fcgi:(dest) URLs */static int proxy_fcgi_handler(request_rec *r, proxy_worker *worker, proxy_server_conf *conf, char *u原创 2015-08-31 18:48:42 · 1214 阅读 · 0 评论 -
新浪微博,腾讯微博mysql数据库主表猜想
新浪微博,腾讯微博mysql数据库主表猜想字段名称字节数类型描述User_id4uint32用户编号(主键)User_name20Char[20]名称Msg_count4uint32原创 2011-04-21 18:32:00 · 36806 阅读 · 80 评论 -
一个server启两个实例引发的问题
问题描述:在gateway出现同一个serverid对应的两个tcp连接,导致测试流程时段时续问题定位:重启gateway,发现某个serverid对应有两个连接。1)通过日志得到两个连接对应的fd2)lsof -p gateway进程查看两个fd对应的tcp连接对端ip和port3)在对端机器上查看ip和portt对应的进程,netstat -anp查找两个端口,得带两个端口对应原创 2016-08-24 19:26:49 · 560 阅读 · 0 评论 -
游戏服务器优化实践
定位问题:1.添加日志,查看cpu状态,根据协议分布情况,测到结论redis操作比较频繁,导致消息堆积比较严重(半小时1300万消息处理)优化策略:控制client的协议调用频率,定时将redis操作累积定时统一提交2.优化redis之后,协议处理量上来了,cpu也飙起来,半小时2500万消息处理量,处理能力提高一倍,但是仍有消息堆积,发现95%的消息都是同一个消息优化策略:gam原创 2016-07-28 12:05:52 · 1120 阅读 · 0 评论 -
ssd-cache
源地址:http://idning.github.io/ssd-cache.htmlTable of Contents1 需求1.1 why1.2 具体需求2 index3 ssd 特性3.1 成本3.2 接口3.3 比较典型的ssd参数3.4 小结4 现有系转载 2016-07-29 18:02:42 · 1348 阅读 · 0 评论 -
探讨php中error_log函数输出内容的原子性问题
php的error_log真的可以输出任意日志而保证完整性吗?针对这个问题,深入探讨论证,你会发现很多认识上的误区原创 2015-08-27 18:16:43 · 1976 阅读 · 0 评论 -
Linux下随机10字符病毒的清除
源地址:http://www.botwo.net/linux-sjszfbd.html病毒表现:网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CPU利用率也在top之首。杀死该进程后,会再随机产生一个新的进程。查找步骤:一、/proc/_pid/cmdline里面都转载 2016-05-04 16:44:35 · 4098 阅读 · 0 评论 -
Redis未授权访问事故记录
很久之前还分享了一篇Redis 未授权访问配合 SSH key 文件利用分析给运维同事,不想今天居然遇上了,特此记录。发现问题:公司游戏的韩国版本今天停服更新之后,公会信息都丢失了,一开始以为是公会数量太多,特定数量的下发包也超过了网络层的包大小限制。跟踪问题:1.到现网机器上看redis数据,居然查不到公会数据,不过发现redis居然还是绑定的*,不是内网ip(不过介原创 2016-04-05 20:10:05 · 787 阅读 · 0 评论 -
通过curl的并发机制实现php批量网络请求
应用场景:有一批玩家的ip地址,需要转换为国家信息应用思路:简单通过网站的公共服务接口查询ip对应的国家信息,但是服务没有批量接口解决方案:既然对方没有批量接口,那只能本地批量调用对方的接口,简单的方法,通过curl的批处理机制实现代码如下:<?php$ip_list_str = file_get_contents("./ip_list_tmp.txt");$ip_list =原创 2015-09-09 17:45:36 · 8534 阅读 · 0 评论 -
apache cgi机制核心实现代码
cgi的核心机制:1.从环境变量读取http request参数2.如果是get模式,那么全部请求参数可以从环境变量中获取3.如果是post模式,那么从stdin中读取content_length长度的数据,可解析为请求参数这其中包括两块,首先当收到request后,起进程,配置父子进程的stdin和stdout,具体如下: if ((pid = fork())原创 2015-08-31 17:10:57 · 645 阅读 · 0 评论 -
你需要知道的关于NoSQL数据库的10件事
源地址:http://www.dbthink.com/?p=630 你需要知道的关于NoSQL数据库的10件事By Guy Harrison , Translated By Jametong关系数据模型已经流行了几十年了,但是一种新型的数据库(即NoSQL)正在吸引各大企业的关注.下面是对其优势与劣势的一个简单总结.在过去的1/4世纪中,关系型数据库(RDBMS)一直是数据转载 2011-06-30 10:38:00 · 894 阅读 · 0 评论 -
nosql生态系统
源地址:http://blog.nosqlfan.com/html/2171.html NoSQL生态系统与本书中提到的其它主题不同,NoSQL不是一个工具,而是由一些具有互补性和竞争性的工具组成的一个概念,是一个生态圈。这些被称作NoSQL的工具,在存储数据的方式上,提供了一种与基于SQL语言的关系型数据截然不同的思路。要想了解NoSQL,我们必须先了解现有的这些工具,去转载 2011-06-28 09:22:00 · 1475 阅读 · 0 评论 -
设置和获取socket buffer size
<br />int nrcvbuf=8192*2; //and now the default buffer is 8192 <br /> setsockopt(Socket,SOL_SOCKET,SO_RCVBUF,(char *)&nrcvbuf,sizeof(nrcvbuf)); int nRB = 0; <br /> int Length = sizeof(int); <br /> getsockopt(Socket,SOL_SOCKET,SO_RCVBUF,(ch原创 2011-03-05 00:52:00 · 1487 阅读 · 0 评论 -
CreateIoCompletionPort 返回值的问题
<br />HANDLE CreateIoCompletionPort(<br /> HANDLE FileHandle,<br /> HANDLE ExistingCompletionPort,<br /> DWORD CompletionKey,<br /> DWORD NumberOfConcurrentThreads<br />); 返回非零值说明绑定成功,返回零有两种情况:1.绑定失败2.重复绑定原创 2011-03-05 00:51:00 · 2014 阅读 · 0 评论 -
网游服务器设计原则几条
<br />1.Server间socket的发送和接收缓存要足够大,以防在客户端并发操作时消息堆积导致的溢出<br />2.Server端在最有可能大并发量的accept和disconnect操作上做排队处理,防止此种情况下导致server压力突增<br />3.Server上对每个客户端做消息发送频率的限制,以防恶意攻击<br />4.维持accept在一定的数量,防止出现accept越来越少,这样会导致后面的client无法接入<br />5.在socket上设置keepalive属性,这样可以保证se原创 2011-03-05 00:37:00 · 768 阅读 · 0 评论 -
多播代码
<br />客户端://///////////////////////////////////////////////////////////////////////////////////////// #include <sys/types.h><br />#include <sys/socket.h><br />#include <arpa/inet.h><br />#include <stdio.h><br />#include <stdlib.h><br />#include <string原创 2011-03-04 23:29:00 · 680 阅读 · 0 评论 -
多播的步骤
<br />1.创建socket socketfd = socket(AF_INET, SOCK_DGRAM, 0);<br /> if (-1 == socketfd)<br /> {<br /> perror("Opening socket");<br /> exit(EXIT_FAILURE);<br /> }<br />2.设置socket可重用并绑定 loop = 1;<br /> if (setsockopt(soc原创 2011-03-04 23:27:00 · 665 阅读 · 0 评论 -
memcache错误码
<br />typedef enum {<br /> MEMCACHED_SUCCESS,<br /> MEMCACHED_FAILURE,<br /> MEMCACHED_HOST_LOOKUP_FAILURE,<br /> MEMCACHED_CONNECTION_FAILURE,<br /> MEMCACHED_CONNECTION_BIND_FAILURE,<br /> MEMCACHED_WRITE_FAILURE,<br /> MEMCACHED_READ_FAILUR原创 2011-03-04 23:13:00 · 5675 阅读 · 0 评论 -
IOCP中的AcceptEx与getsockname,getpeername
在AcceptEx之后要设置 int err = setsockopt( pWxOl->m_sock, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char *)&sListenSocket, sizeof(sListenSocket) );这样在后面getsockname和getpeername才能拿到真正的IP地址。原创 2009-05-09 15:49:00 · 1539 阅读 · 0 评论 -
FTP连接穿过防火墙
CInternetSession::SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 100000); 设置连接超时时间CInternetSession::GetFtpConnection("xxx.xxx.xxx.xxx", "test", "test", TRUE); 此处设置为TRUE才可以通过某些防火墙的拦截。CFtpConnection* GetFt原创 2009-05-09 15:51:00 · 1095 阅读 · 0 评论 -
设置和获取socket buffer size
int nrcvbuf=8192*2; //and now the default buffer is 8192 setsockopt(Socket,SOL_SOCKET,SO_RCVBUF,(char *)&nrcvbuf,sizeof(nrcvbuf)); int nRB = 0; int Length = sizeof(int); getsoc原创 2009-05-09 15:35:00 · 6262 阅读 · 0 评论 -
CSocket Recvfrom() 返回错误 WSAECONNRESET
http://blog.csdn.net/xkou/archive/2006/12/06/1432349.aspx http://support.microsoft.com/kb/263823原创 2009-05-09 16:07:00 · 885 阅读 · 0 评论 -
网游服务器中的分号段处理
网游服务器中分号段机制的应用原创 2011-03-07 16:49:00 · 599 阅读 · 0 评论 -
fcgi/cgi 参数获取 get与post
void webparam::get_cgi_value(){int len = 0;if(get_request_method() == "POST")//post method{if(len = MAX_CONTENT_LENGTH)return;//errorcin >> m_content;}else//get method{if(NULL != getenv("QUERY_STRING"))m_content.assign(getenv("QUERY_STRING"));}//get cookie原创 2011-05-11 17:42:00 · 7827 阅读 · 0 评论 -
spawn-fcgi与fcgi的运行机制分析
<br />这几天看了spawn-fcgi的源代码,以及libfcgi的源代码,终于明白了c程序fcgi的运行机制,这里画了一个时序图。官方的spawn-fcgi是没有守护监控功能的,我在此基础上实现了守护监控功能,ab并发测试,效果不错,有需要的同学可以直接下载<br />http://download.csdn.net/source/3266317, 或者参见http://blog.csdn.net/cleanfield/archive/2011/05/10/6409830.aspx中spawn-fcg原创 2011-05-11 18:23:00 · 11500 阅读 · 0 评论 -
分层隔离思想与protobuffer在基础数据系统中的应用
原创 2011-06-22 11:58:00 · 944 阅读 · 0 评论 -
Hadoop是最完美的数据仓库体系结构吗?
源地址:http://cloud.csdn.net/a/20110610/299479.html 从Yahoo的 Web搜索研究,到Facebook的数据分析,再到百度的搜索日志分析、淘宝的数据魔方服务,Hadoop的身影都已经到处闪现。简单来讲,社会化数据时代的企业需要像八爪鱼一样,能够发现并拿到他需要的数据,而Hadoop技术的好处就是,不但可以方便地嵌入到各种实际应用中以实现全文转载 2011-06-10 11:12:00 · 1046 阅读 · 0 评论