- 博客(34)
- 收藏
- 关注
原创 iptalbe
对BGP-C机器加873端口限制时,是否需要对ssh等也需要添加?iptables -A INPUT -s *.*.*.*/32 -d 180.150.177.147/32 -p tcp --dport 873 -j ACCEPTiptables -D INPUT line_number先加允许的条目,然后最后再加个对 873端口的丢弃:iptables -A
2016-03-11 13:25:28
581
原创 LVS的几种模式
DR模式说明 LD与RS必须在相同的一个物理网段内(测试走其他路由,LD将无法转发请求)RS的lo上需要绑定服务的虚IP,同时关闭arp广播(详见配置),因为DR模式是依赖MAC的转发,而不是IP,DR模式在收到请求五元组后不会包头的改写在LD上对IP包头不做masquerade也不需要配置ip_forward,说明参见详细说明RS的路由不用返回LD(NAT模式才需要默认网关指向LD的管理
2016-03-11 11:59:50
818
原创 keepalive源码学习
start_vrrp_child 1,创建子进程 2,父进程执行 thread_add_child,并推出 2.1 定义新的 thread_t 对象,并进行根据给定参数进行初始化,线程id,处理函数等 vrrp_respawn_thread
2016-03-11 11:59:00
1268
转载 root密码丢失
1、进入终端 #sudo su root然后输入普通用户的密码,就暂时获得了root帐号的权限了,同时也进入了root账号下了;这时我们可以为所欲为了;不信的话你切换几次账号,看看行不行;嘿嘿2、这是我们就可以做一切只有root用户能做的事了,包括修改root用户的密码,都是可以的,咋有点想当强盗的感觉那;
2014-07-02 20:35:13
473
转载 epoll的原理和用法
设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一个时刻只有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux内核2.4版
2014-05-02 18:15:32
560
转载 C++中int型与string型互相转换
本以为这么多年C#经验,学个C++没多难,现在发现错了。C++真TM难。今天遇到int转string绊了半天,方法很多,不知道为什么搞那么复杂,我只挑最简单易懂的,管他效率不效率的。int转stringint n = 0;std::stringstream ss;std::string str;ssss>>str;string转intstd::string
2014-05-01 09:38:52
490
转载 epoll的ET模式和LT模式
前几天回答一个问题,是关于我们项目中使用的epoll模式的,因为记不大清了,感觉应该使用的就是epoll的高速模式,也就是ET(edge-trigger)模式。这两天闲暇的时候,打开代码又看了一下,在epoll事件注册时并未标记ET模式,看来实际使用的是epoll默认的LT(level-trigger )模式,为什么呢?使用LT意味着 只要 fd 处于 readable/writable 状态
2014-04-16 15:23:15
720
转载 Epoll在LT和ET模式下的读写方式
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable总结:这个错误表示资源暂
2014-04-16 11:45:16
550
转载 设计模式之——单例模式(Singleton)的常见应用场景
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。这里又不具体讲如何实现单例模式和介绍其原理(因为这方便的已经有太多的好文章介绍了),如果对单例模式不了解的可以先看下:http://terrylee.cn
2014-04-16 10:13:01
495
转载 linux下查看磁盘空间
如果要查看磁盘还剩多少空间,当然是用df的命令了。[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 14G 11G 2.6G 82% / /dev/sda1 99M 14M 81M 14% /boot t
2014-04-11 23:48:03
514
转载 KeepAlive 选项
在 Apache 中,打开和关闭 KeepAlive 功能,服务器端会有什么异同呢? 先看看理论分析。 打开 KeepAlive 后,意味着每次用户完成全部访问后,都要保持一定时间后才关闭会关闭 TCP 连接,那么在关闭连接之前,必然会有一个Apache 进程对应于该用户而不能处理其他用户,假设 KeepAlive 的超时时间为 10 秒种,服务器每秒处理 50个独立用户访
2014-04-08 22:49:11
814
转载 关于i++和++i的学习
今天在论坛上无意中看到有人问关于i++和++i的问题,感觉自己也不怎么熟悉,就仔细看了一下。感觉有位大侠的回复相当不错,很有特色,把问题讲得很明白,受教了。这里摘录一下,学习学习!------------------------------------------------------------------------------------------------------
2014-04-02 10:28:51
624
原创 用命令修改ip
1. 设置IP sudo ifconfig eth0 203.171.239.155 netmask 255.255.255.224 这样就算设置好了网卡eth0的IP地址和子网掩码2. 设置网关 sudo route add default gw 203.171.239.1293. 设置DNS 修改/etc/resolv.conf,在其中加入 nameserver DNS的地址1 nam
2014-04-01 22:51:46
592
转载 tcpdump
调试网络程序时,通常需要抓包分析。Linux下的tcpdump就很好。Ubuntu下默认已经安装。下面先举个实际的例子.比如我有一个C++程序监听本地端口8889, 另一个newlisp程序通过TCP和其通信。首先可以检查一下有几个网络接口。[plain] view plaincopyprint?root@dean-G
2014-04-01 22:44:01
610
转载 route命令使用
route命令可以用来管理Linux内核的路由表。主要的两个修改操作是add和del,如果没有,则是查看路由表。下面的命令没有任何参数,仅查看本地路由表:[plain] view plaincopyprint?dean@dean-ubuntu:~$ route Kernel IP routing table Des
2014-04-01 22:29:02
518
转载 SIGHUP信号
UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。这儿是可能会有,在一定情况之下是没有的。与终端交互的进程是前台进程,否则便是后台进程。SIGHUP
2014-03-31 00:21:04
1148
转载 struct rlimit介绍
Resouce limit的大小可以直接影响进程的执行状况。其有两个最重要的概念:soft limit 和 hard limit。struct rlimit {rlim_t rlim_cur;rlim_t rlim_max;}; 是指内核所能支持的资源上限。比如对于RLIMIT_NOFILE(一个进程能打开的最大文件 数,内核默认是1024),soft limi
2014-03-31 00:18:19
824
原创 strrchr函数
头文件:#include 定义函数:char * strrchr(const char *s, int c);函数说明:strrchr()用来找出参数s 字符串中最后一个出现的参数c 地址,然后将该字符出现的地址返回。返回值:如果找到指定的字符则返回该字符所在地址,否则返回0。
2014-03-31 00:16:16
889
转载 Linux目录架构详解
Linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”,亲爱的读者,您都了解这些目录的含义吗? ls -l / 遍历文件系统 本文将引领您浏览Linux的目录架构,并解释每个重要目录的含义。 / - Root 通常称为根分区。所有的文件
2014-03-30 21:34:08
478
转载 常用linux命令
1,查看磁盘 df -h2,查看内存大小 free free [-m|g]按MB,GB显示内存 vmstat3,查看cpu cat /proc/cpuinfo 只看cpu数量 grep "model name" /proc/cpuinfo | wc -l4,查看系统
2014-03-29 23:27:22
502
转载 c++中用fprintf写文件
#include #include #include #include #include using namespace std;struct Employee{ std::string name; std::string department; double salary; int age; bool gender;};int main(){ FILE *s
2014-03-28 11:18:53
8935
转载 #pragma once 与 #ifdef 的区别
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语
2014-03-18 00:13:17
1613
转载 proc多线程访问ORACLE数据库
一.什么是多线程? 一个多线程的应用程序中,线程运行在共享的地址空间里。线程是在进程内部执行的“轻量”级子进程,它们共享代码段和数据段,但是有自己的程序计数器、寄存器和堆栈。全局变量和静态变量在线程之间是共享的,因此通常需要在程序中使用某种互斥机制来管理线程对这些变量的访问,互斥体Mutexes就是用来保证数据完整性的同步装置。 有关互斥体的更多讨论,参看多线程编程方面的文
2014-03-16 22:05:52
1633
原创 进程与线程的比较
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程 序健壮,但在进程切换时,耗费资源较大,效率要差一些。线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧
2014-03-16 21:11:40
524
转载 对象池
使用对象池加速游戏内存分配游戏开发中经常需要频繁产生、销毁大量对象,内存本身够不够用是一方面,尤其是在手机等内存本来就有限的设备上面,另外一点是分配的速度不会对游戏体验造成影响,也就是不能影响帧率。相比内存池,对象池更易用更容易管理,而且还可以利用脏数据,也就是上次被回收掉的对象的数据。而且偶尔的空间分配失败其实不是那么重要(后面会讲怎么在会失败的情况下完成分配任务),游戏
2014-03-16 21:09:25
496
转载 volatile
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行设备的硬件寄存器(如:状态寄存器) 2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables
2014-03-12 23:45:22
619
转载 strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
2014-03-12 22:58:00
441
原创 QT简介
1,QT简介 工具: bin目录:QT的专门工具 examples目录:例子目录 mkspecs目录:QT工具的默认设置 assistant:帮助文档 qtconfig:QT配置工具 qmake:QT的make与项目文件智能创建工具 uic:UI界面的设计文件的编译工具
2014-01-21 21:47:05
636
原创 C++模板
-------------------------------------------------------------------------------------------day 01 AM-------------------------------------------------------------------------------------------
2014-01-20 17:00:52
702
转载 用户行为数据
基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。顾名思义,系统过滤算法就是指用户齐心协力。通过不断的和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的东西,从而越来越满足自己的需求。2.1 用户行为数据显性反馈行为,隐性反馈行为正反馈,负反馈用户行为的表示方式,可能包含6部分:1,user id
2014-01-17 11:40:54
1045
转载 什么是推荐系统
1. 推荐系统和搜索引擎的区别:搜索引擎满足了用户有明确需求时的主动查找请求推荐系统能够在用户没有明确目的的时候帮助他们发现兴趣2. 几乎所有的推荐系统都是由前台的展示页面,后台的日志系统以及推荐算法系统3部分组成3. 个性化推荐的成功应用需要两个条件,第一是存在信息过载,因为如果用户可以很容易的从物品中找到喜欢的物品。就不需要个性化推荐了。第二是用户大部分时间
2014-01-17 00:07:43
1088
原创 函数模板
///////////////////////////function.cpp//////////////////////////template string type(T t){return Type::name();}int main(){cout cout int a=10;char b='k';cout cout cout
2014-01-16 18:57:56
503
原创 协同过滤推荐(CF)
一,协同过滤推荐如果用户A和用户B的购买经历非常重叠,而且用户A最近买了一本用户B还不知道的书,那么这时就像B推荐这本书,用户是在隐式地与其他人相互协作,这种技术称谓协同过滤(CF, Collaborative Filtering)。协同方法北京下的常见问题如下:1,如何发现与我们要推荐的用户有着相似偏好的用户?2,如何衡量相似度?3,如何处理还没有购买经历的新用户?4,如
2014-01-14 23:03:54
1234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人