Category Archives: linux
普及帖:Linux 下编译C程序
GNU 编译器集(其前身为GNU C 编译器)诞生于1987年。当时Richard Stallman(GNU 项目的创办人)想要创建一个编译器,它可以满足他定义的“自由软件”概念,并可用来编译 GNU 项目发布的其他软件。GNU C 编译器迅速在自由软件社区中流行开来,而且以其健壮性和可移植性而闻名。它已成为许多集成开发工具的基础,被世界各地的发行商应用在 Linux 和其他操作系统之上。 GCC 已不再是主要针对GNU项目自身的软件的小型 C 语言编译器了。如今,它已支持了许多不同的语言,包括 C、C++、Ada、Fortran、Objective C,甚至还有Java。事实上,现代 Linux 系统除了可以自豪地炫耀那些由 GNU 工具直接支持的语言以外,它还支持大量其他语言。日益流行的脚本语言 Perl、Python 和 Ruby,以及正在不断发展的mono 可移植C#实现的确有助于冲淡人们对 Linux 编程的传统看法,但这完全是另外一个问题了。 Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。 1. 编译单个源文件 为了进行测试,你可以创建“Hello World”程序: #include …
Berkeley DB参考文档
Berkeley DB参考文档 Berkeley DB概述 Berkeley DB优缺点 Berkeley DB使用手册 Berkeley DB for C使用手册(中文) Berkeley DB和SQL的比较用法
sscanf函数的各种用法
sscanf是一个运行时函数,原形很简单: int sscanf( const char *buffer, const char *format [, argument ] ... ); 它强大的功能体现在对format的支持上。 sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 char str[512] = ; sscanf("123456 ", "%s", str); printf("str=%s", str); 输出 str=123456 sscanf("123456 ", "%4s", str); printf("str=%s", str); 输出 str = 1234 sscanf("123456 abcdedf", "%[^ ]", str); printf("str=%s", str); 输出 str=123456 (遇到空格为止) sscanf("123456abcdedfBCDEF", "%[^A-Z]", str); printf("str=%s", str); 输出 str=123456abcdef (遇到指定字符为止) …
Web压力测试工具介绍
1.http_load 下载地址:http://www.acme.com/software/http_load/ 实际运行: bash# http_load -rate 5 -seconds 10 urls -parallel 简写-p :含义是并发的用户进程数。 -fetches 简写-f :含义是总计的访问次数 -rate 简写-r :含义是每秒的访问频率 -seconds简写-s :含义是总计的访问时间 urls.txt 是一个url 列表,每个url 单独的一行;不可以直接跟一个url,有些博客主说的可以跟一个url是错误的说法。 49 fetches, 2 max parallel, 289880 bytes, in 10.0145 seconds 5916 mean bytes/connection 4.89274 fetches/sec, 28945.1 …
配置一个使用plproxy的PostgreSQL数据库集群
本文只有一个连接 没有那么多内容 http://www.pgsqldb.org/mwiki/index.php/配置一个使用plproxy的PostgreSQL数据库集群
plproxy部署手册
安装过程如下: 1 安装plproxy:下载plproxy.安装完成plproxy后,运行{$PATH_TO_PG}/share/contrib/plproxy.sql 2 建立数据库_proxy; 3 建立plpgsql语言; 4 在_proxy中建立模式plproxy;分配权限 grant all on schema plproxy to <用户>。 5 建立pgcluster; --以上步骤sql语句: CREATE FUNCTION plpgsql_call_handler () RETURNS language_handler AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE C; CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE C; CREATE TRUSTED …
使用plproxy和pgbouncer完成分布式处理
plproxy和pgbouncer都是skype开发的基于postgresql的开源应用;前者主要用于完成分布式计算,后者主要充当数据库连接池;它们的主页在[plproxy]和[pgbouncer] plproxy的特性 使用plproxy类似于RPC;假设我们有A,B两台数据库,在A在创建一个plproxy的function,并指定一些参数和返回值,就可以在B上也创建一个同名的pgsql函数,并指定同样的参数和返回值;这样,在A上调用该function,通过适当地声明,就可以实现在B上调用该函数的同样效果,但结果是在A上返回的; plproxy还能合并多个结点服务器上返回的结果集,就像是这些结果是由一个函数产生的一样,方便客户端操作; plproxy可以指定同时在所有结点服务器上执行操作,或者只在指定的几台服务器上操作,或者只在任意一台结点服务器上执行操作; plproxy默认是自动提交的;也就是说,只要目标服务器的函数执行成功了,它就会提交;这样有可能造成各个结点数据库的状态并不一致;因为可能有的结点执行成功了,有的没有执行成功,但plproxy并不会因为一个结点失败就回滚其它结点的操作 一开始,我们只有一台账户数据库;但随着账户增加,单个数据库肯定满足不了需求;当多台数据库服务器并存的情况下,需要解决负载平衡的问题; 为此,我们在系统的syshostconfig表中存储了一个key为accountNum,value为整数的参数;每次进行开户操作时,先用plproxy在所有数据库上查出该值并返到proxy层;由pgsql函数找出哪个数据库的accountNum最
pgpool安装
下载地址:http://pgfoundry.org/projects/pgpool/ 文件为:pgpool-II-2.0.1.tar,tar xvfj pgpool-II-2.0.1.tar 在pgpool-II-2.0.1目录下,执行./configure --prefix=/home/y/share/pgsql ----with-pgsql=/home/y/share/pgsql, 要求with-pgsql目录必须为pgsql安装目录。 之后执行gmake,sudo gmake install; pgpool需要用PCP命令来连接数据库检索数据,其用户名、密码是在pcp.conf文件中保存的。密码是经过md5加密的,需要用户手工输入。 cp /home/y/share/pgsql/etc/pcp.conf.sample /home/y/share/pgsql/etc/pcp.conf md5加密码可以用/home/y/share/pgsql/bin/pg_md5直接生成 :例/home/y/share/pgsql/bin/pg_md5 postgres 结果为e8a48653851e28c69d0506508fb27fc5 将用户名,密码记入到pcp.conf文件中。 pcp默认端口为pcp_port = 9898。可以在pgpool.conf文件内修改 cp /home/y/share/pgsql/etc/pgpool.conf.sample /home/y/share/pgsql/etc/pgpool.conf,默认连接端口为port = 9999, 默认只允许本地连
pgsql如何控制来自其他电脑的连接?
缺省情况下,PostgreSQL只允许来自本机且通过 unix 域套接字或TCP/IP方式的连接。你只有在修改了配置文件postgresql.conf中的listen_addresses,且也在配置文件$PGDATA/pg_hba.conf中打开了 基于远程电脑( host-based )的身份认证,并重新启动PostgreSQL,否则其他电脑是不能与你的PostgreSQL服务器进行连接的。 将postgresql.conf中的listen_addresses设为:listen_addresses = '*' 在pg_hba.conf中加入访问数据库的服务器的IP。如,IP=10.62.130.136,在pg_hba.conf的最后加入 host all all 10.62.130.136/32 trust
当Pg连接数达到一定数量时,Pgsql进程会终止,报Out of memory
Q: 当Pg连接数达到一定数量时,Pgsql进程会终止,报Out of memory A:在 Linux 2.4 以及之后的版本里,缺省的虚拟内存的设置对于 PgSQL而言不是最优的(32M)。原因也可能在于内核实现内存提交的方法导致出现了“过提交”内存(具体情况由于没有遇到,不作评述),如果其它进程的内存请求导致系统用光虚拟内存,那么内核可能会立即终止 PGSQL 服务器进程并会出具Out of memory报错,唯一的解救方法只能手工kill掉数据库进程,重启数据库。修改方法为: sysctl -w kernel.shmmax=134217728 sysctl -w kernel.shmall=2097152 sysctl -w vm.overcommit_memory=2 或者直接echo进proc中去(我个人喜欢比较传统的操作) echo 134217728 >/proc/sys/kernel/shmmax echo 2097152 >/proc/sys/kernel/shmall echo 2 > /proc/sys/vm/overcommit_memory 考虑到并不是每个人都乐意于每次开机都作此操作,最好还是修改/etc/sysctl.config文件添加相应的设置。 Slony不同步数据? Q:配置了Slony,并未报错,但数据没同步过来 A:你要同步的表都设置主键了么,如果没有设主键的Slony配置表的属性的时候要加Serial属性哦 Slony同步数据非常慢? Q:Slony同步数据非常慢,需要20~30s,且配置Slony
SEARCH
Update
- rose手册第三章三节:controller层:ErrorHandler支持
- 54chen Twitter memo 2012-05-13
- 54chen Twitter memo 2012-05-06
- rose手册第三章二节:controller层:拦截器支持
- 54chen Twitter memo 2012-04-29
- rose手册第三章一节:controller层:url对照规则与返回结果规则
- 54chen Twitter memo 2012-04-22
- 54chen Twitter memo 2012-04-15
- rose手册第二章:配置与使用
- 54chen Twitter memo 2012-04-08
- 54chen Twitter memo 2012-04-01
- rose手册第一章:入门指引
- 54chen Twitter memo 2012-03-25
- 54chen Twitter memo 2012-03-18
- senseidb使用手记
