随笔分类 - Linux
使用sockopt与内核交换数据
摘要:本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn:yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn1. 前言打开一个网络socket后可以使用set/getsockopt(2)可实现用户空间与内核的通信,本质和ioctl差不多,区别在于set/getsockopt不用新建设备,直接利用系统已有的socket类型就可以进行,可用setsockopt函数向内核写数据,用getsockopt向内核读数据。本文内核代码版本为2.6.19.2。2. 基本过程首先在内核中要登记相
阅读全文
集群之LVS(负载均衡)详解
摘要:提高服务器响应能力的方法scale on 在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器。scale out 横向扩展,将多台服务器并发向外响应客户端的请求。优点:成本低,扩展架构比较简单。集群(Cluster),通俗地讲就是按照某种组织方式将几台电脑组织起来完成某种特定任务的这样一种架构。三种集群类型:LB,Load Balancing 负载均衡:在一定程度上能够实现高可用的目的。HA,High Availability 高可用:实时在线,能够及时响应客户端请求,企业应用要求达到 7*24小时,99.999%时间在线。HP,High Performance 高性能 提供大量超
阅读全文
Linux下群集服务简介&lvs集群详解(转)
摘要:Linux下集群服务简介:ClusterLB:Load Balancing,负载均衡HA:High Availability ,高可用HP:High Performance,高性能负载均衡集群目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问 量的Web服务。负载均衡集群往往也具有一定的高可用性特点。高可用性集群运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集群中比较著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。高性能集群对一种服务而言不具有负载
阅读全文
/usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
摘要:/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC/usr/local/lib/libz.a: could not read symbols: Bad value一般是64 位 电脑才会出现。解决方法如下:cd zlib-1.2.3 //进入zlib目录CFLAGS="-O3 -fPIC" ./confi
阅读全文
centos 单独安装apachebench
摘要:这两天在测试php性能优化方法。为了做压力测试可观察效果,就选择了ApacheBench来作为压力测试工具。其实就是大家常说的ab。但是这个工具是安装apache web server的时候自带的,现在我服务器上都是跑nginx。也不想为了用这个工具就再装个apache。所以在用下面方法单独安装ab工具,这里记录下步骤。首先安装ab运行需要的软件包apr-utilyum install apr-util然后安装一个yum的工具包,为了可以单独弄出来ab。yum install yum-utils上面两个安装好以后,我们开始单独安装ab,其实就是下载到apache的rpm包,然后解压后,cp出来
阅读全文
Cent os 升级python到2.5后yum安装出错
摘要:# yum listLoading "priorities" pluginTraceback (most recent call last):File "/usr/bin/yum", line 29, in ?yummain.main(sys.argv[1:])File "/usr/share/yum-cli/yummain.py", line 105, in mainresult, resultmsgs = base.doCommands()File "/usr/share/yum-cli/cli.py", li
阅读全文
[转]linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/lld.so.conf
摘要:Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。传统上,Linux 的先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准
阅读全文
配置yum
摘要:echo '192.168.0.27 KVM' >> /etc/hostsrm -rf /etc/yum.repos.d/*cat >> /etc/yum.repos.d/CentOS-Media.repo << EOF[c5-media]name=CentOS-\$releasever - Mediabaseurl=file:///misc/sysimage/gpgcheck=0enabled=1EOFecho 'sysimage kvm:/media/CentOS58' >> /etc/auto.misc
阅读全文
linux系统实践之十六:linux修改系统时间详解 [转]
摘要:两步(1)date 042612492005(2)hwclock -w第一步的意思是设置时间,设置完了可以用date命令查看对不对...注意是月日时分年第二步的意思是写入主板的rtc芯片..=======================================su -c 'date -s 月/日/年'su -c 'date -s 时:分:秒'=======================================了解Linux的时钟由于Linux时钟和Windows时钟从概念的分类、使用到设置都有很大的不同,所以,搞清楚Linux时钟的工作方式与设
阅读全文
Icecast流媒体广播的设置(转)
摘要:1,介绍写这篇文章前,我也找了不少的资料,不过其它的很多都太老了,没有给我以有效的帮助,本来是有两个选择的,icecast和shoutcast,既然用了linux,OpenSource的观念于我影响很深,所以毫不犹豫的选择了开源的icecast作为播放的服务器.她既能支持在Lan内,也能支持在Internet上同时向很多人播放,同时采用ices作为媒体源。整个架构就是以icecast作播放服务器,ices作为媒体采集提供源。要注意的是,当前icecast的版本是icecast-2.2.0,她支持mp3和ogg。ices有两个主要版本,2.0.x和0.4.x,这里面很有学问了,最新的2.0.x只
阅读全文
Linux 共享库
摘要:Linux系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。 第二类是动态链接的可执行程序。 静态可执行程序与动态可执行程序比较 我们可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的: # ldd /sbin/sln not a dynamic executable “not a dynamic executable”是 ldd 说明 sln 是静态链接的一种方式。现在,让我们比较 sln 与其非静态同类 ln 的大小...
阅读全文
Mount Windows共享文件夹到Linux目录
摘要:Check which shares are available for mountNow before you mount you can also check which shares (folders/drives) are available on your Windows machine that you can mount by giving the following command:# smbclient -L infohighway -U kushalwhereinfohighway = Name (NetBIOS Name) of my computerkushal = U
阅读全文
ulimit -c unlimited
摘要:ulimint -a 用来显示当前的各种用户进程限制Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,设置个Linux用户的最大进程数,一些需要设置为无限制:数据段长度:ulimit -d unlimited最大内存大小:ulimit -m unlimited堆栈大小:ulimit -s unlimited我们在用这个命令的时候主要是为了产生core文件,就是程序运行发行段错误时的文件:ulimit -c unlimited生成core文件,#######################################################以下来自;ht
阅读全文
【转】Linux C函数库参考
摘要:asctime(将时间和日期以字符串格式表示)clock(取得进程占用CPU的大约时间)ctime(将时间和日期以字符串格式表示)difftime(计算时间差距)ftime(取得目前的时间和日期)gettimeofday(取得目前的时间)gmtime(取得目前的时间和日期)localtime(取得当地目前的时间和日期)mktime(将时间结构数据转换成经过的秒数)settimeofday(设置目前的时间)strftime(格式化日期和时间)time(取得目前的时间)tzset(设置时区以供时间转换)abs(计算整型数的绝对值)acos(取反余弦函数值)asin(取反正弦函数值)atan(取反正
阅读全文
nginx常用的请求过滤
摘要:以下为字符串匹配操作符:~为区分大小写匹配~* 为不区分大小写匹配!~和!~*分别为区分大小写不匹配及不区分大小写不匹配1: 限制某些类型的客户端的访问view plainprint?location/{if($http_user_agent~MSIE){return503;}}#限制IE访问如果把MSIE改成 Mozilla 就基本上把IE和firefox这样pc浏览器限制了2和3主要是针对盗链做处理2:针对不同的文件类型view plainprint?location~.*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)${if($ht
阅读全文
vi 缩进问题
摘要:用redhat9 下面自带的vi编写c程序;用syntax on打开了高亮,用set cindent打开了自动缩进。参考 vi设置:在主目录下,创建一个文件,文件名必须是:.vimrc其中的内容通常包括:set nu 显示行号set ic 查找时不考虑大小写set ai 设置自动缩进(autoident)set sm 显示匹配括号等(show match)set ruler 显示行号和列号set ts=2 设置tabsize为2解决乱码通常很多在Ubuntu中使用VIM编辑中文编码的文档时所看到大全是乱码,而且就算是凭记忆修改内容也会出现问题,我就遇到过这样问题,后来终于解决。其实方法很简单编
阅读全文
POSIX 线程 – pthread_sigmask
摘要:概念按照 POSIX, 异步 (外部) 信号发送到整个进程.所有线程共享同一个设置, 即通过 sigaction 设置的线程处置方法.每个线程有自己的信号掩码, 线程库根据该掩码决定将信号发送到哪个线程.由于 Linux 线程实现上的独特性, 外部信号始终发送到特定的线程. pthread_sigmaskpthread_sigmask 用来定义线程的信号掩码其接口与 sigprocmask 一样=============================================================================== #include <pthre...
阅读全文
TCP_NODELAY和TCP_CORK
摘要:先上代码: int flag = 1; int result = setsockopt(sock, /* socket affected */ IPPROTO_TCP, /* set option at TCP level */ TCP_NODELAY, /* name of option */ (char *) &flag,/* the cast is historical cruft */ sizeof(int)); /* length of option v...
阅读全文
[精华] 讨论 Setsockopt选项
摘要:有时候我们要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要控制套接字的选项了.以下资料均从网上收集得到getsockopt 和 setsockopt获得套接口选项: int getsockopt ( int sockfd, int level, int optname, void * optval, socklen_t *opteln ) 设置套接口选项: int setsockopt ( int sockfd, int level, int optname, const void * optval, socklen_t *opteln ) sockfd(套接字): 指向一个打开的套
阅读全文
Linux下多路复用IO接口 epoll select poll 的区别
摘要:我们先来介绍下nginxnginx :支持高并发连接.官方测试的是5w并发连接但在实际生产中可制成2-4w并发连接数,得益于nginx使用最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型.而apache使用的则是传统的select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,所消耗的CPU等服务器资源要比nginx高的多.select 和epoll效率差的原因: select是轮询、epoll是触发式的,所以效率高。单单这样讲,那能懂了才见鬼了.好...我们暂且客观的记住这句话.先说Select:1.Socket数量限制:该模式可
阅读全文