存档
php-fpm下使用eaccelerator产生的内存问题
使用EA或者类似的OP CODE加速器已经是搭建PHP环境的默认选项了
但是在使用nginx的环境内
会需要使用fastcgi方式来运行php
这种情况下.EA的内存占用可能会和你在APACHE下使用EA不同
由于APACHE调用PHP的方式是模块方式的
所有PHP是位于同一个进程下面的
所以所有PHP模块调用的EA是同一个的.
内存只会占用shm_size大小.
APACHE进程间共享这同一个EA
也就是如果你在ea的配置下面写了64M.则只会占用整个系统的64M
而如果用fastcgi模式
特别是php-fpm
阅读全文…
Oracle安装-Linux内核参数-共享内存信号量设置
Oracle数据库在linux系统上的安装过程中,涉及到设置linux内核参数;
这些内核参数究竟代表什么含义,如何调整这些参数?
共享内存:
可以通过ipcs -lm命令查看目前系统共享内存的参数限制:
# ipcs -lm
—— Shared Memory Limits ——–
max number of segments = 4096
max seg size (kbytes) = 1048576
max total shared memory (pages) = 2097152
min seg size (bytes) = 1
这里涉及到3个于共享内存相关的参数:SHMMAX,SHMMNI,SHMALL
阅读全文…
ARP缓存表
arp_tbl是一个类型为struct neigh_table的全局变量,它是一个ARP的缓存表,也称为邻居表。协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关系都会保存在这个表中,以备下次与邻居通讯时使用,同时,ARP模块自身也会提供一套相应的机制来更新和维护这个邻居表。下面逐个分析arp_tbl中的重要成员数据与函数。
entry_size,key_len,kmem_cachep。
entry_size是一个入口的大小,也就是arp_tbl中一个邻居的大小,邻居用struct neighbour结构体表示,该结构体的最后一个成员是u8 primary_key[0],用于存放IP地址,作为这个邻居的哈希主键。所以entry_size的大小就是sizeof(struct neighbour) + 4,因为是用IP地址作主键,所以key_len就是4。kmem_cachep是一个后备高速缓存,创建一个邻居需要的内存从这个后备高速缓存中去取。
hash_buckets,hash_mask,entries,hash。
hash_buckets是一个哈希数组,里面存放了arp_tbl当前维护的所有的邻居,hash_mask是哈希数组大小的掩码,其初始值为1,所以hash_buckets的初始大小为2(0到hash_mask的空间范围)。entries是整个arp_tbl中邻居的数量,当entries大于hash_mask+1的时候,hash_buckets增长为原来的两部。成员hash是一个哈希函数指针,用于计算哈希值。
phash_buckets,PNEIGH_HASHMASK。
这是用于代理ARP的邻居哈希表,PNEIGH_HASHMASK固定为0xF,所以phash_buckets固定有16项,其它与hash_buckets相同。
阅读全文…
用自动wget或ftp提高工作效率
wget ftp://username:password@ip_address/dir/file_name
比自动FTP的SHELL脚本的方法方便多了.
例如获取FTP服务器上文件名是昨天日期的文件,如filename_20040608_001,filename_20040608_002,……
#!/bin/sh
rq=`date –date ’1 days ago’ “+%Y%m%d”`
wget -q ftp://username:password@ip_address/filename_$rq*
阅读全文…
MySQL Proxy快速实现读写分离以及负载均衡
周三, 2008/04/23 – 14:37 — yejr
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
1. 安装
下载已经编译好的安装包,或者预编译安装包均可,在这里,使用预编译版本。
[@s1.yejr.com ~]# tar zxf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz
[@s1.yejr.com ~]# cd mysql-proxy-0.6.0-linux-rhas4-x86
#可以看到有2个目录
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls
sbin share
Mysql编译安装参数优化
关键字: mysql compile
1. -static 13%
–with-client-ldflags=-all-static
–with-mysqld-ldflags=-all-static
静态链接提高13%性能
2. -pgcc 1%
CFLAGS=”-O3 -mpentiumpro -mstack-align-double” CXX=gcc \
CXXFLAGS=”-O3 -mpentiumpro -mstack-align-double \
-felide-constructors -fno-exceptions -fno-rtti”
如果是Inter处理器,使用pgcc提高1%性能
3. Unix Socket 7.5%
–with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面
4. –enable-assembler
允许使用汇编模式(优化性能)
阅读全文…
开启开启eaccelerator后的磁盘性能问题后的磁盘性能问题
本篇只是个人猜测.仅供参考,注意辩读.
我的linode主机,前两天一度出现硬盘IO狂飙的事情.被警告和死机几次,很头疼.仔细检查很多地方,最终将目标锁定在eaccelerator,只有开启它之后,程序才会频繁的进行数据交换.将所有键值指向shm,即内存作为缓存容器,IO读写立刻下降.
参数如下:
zend_extension = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”
eaccelerator.shm_size = 128
eaccelerator.enable = 1
eaccelerator.optimizer = 1
eaccelerator.debug = 0
eaccelerator.name_space = “”
eaccelerator.check_mtime = 1
eaccelerator.filter = “”
eaccelerator.shm_max = 0
eaccelerator.shm_ttl = 3600
eaccelerator.shm_prune_period = 3600
eaccelerator.shm_only = 1
eaccelerator.compress = 0
eaccelerator.compress_level = 6
eaccelerator.keys = shm
eaccelerator.sessions = shm
eaccelerator.content = shm
eaccelerator.compress = 0 这个选项在php-fpm启动的fcgi中建议关闭.压缩并不会带来性能的突破,如果使用磁盘作为缓存容器,读写更频繁.而且会不稳定.会出现进程死掉的事情.
linux下用源代码编译mysql(完整步骤)
|
mysql部分。mysql源代码的版本是:mysql-5.1.29-rc.tar.gz
建立mysql运行的用户和组:为了安全起见,myslq需要以特定的用户身份去运行。
首先,我们需要查看系统中现有的用户及用户组: 执行上述命令,-i参数不区分大小写,如果你没有看到包含mysql的信息,则说明你的系统当前 可能 没有配置mysql,下面我们需要为mysql运行创建用户及组。如果你看到结果返回 mysql 的字样,说明mysql运行的帐户信息己建立好了,那么可以跳过下面这一步。 上述参数解释如下(两个命令参数意义类似): 我们是先创建组,然后再创建用户,并把用户加入到组中。如果是先创建用户,在没有指定 -n 参数的情况下,系统将自动创建与用户名同名的组,并且 组ID 与 用户ID 相同,这可能不是我们需要的结果,特别是个别系统有可能更改这一默认设置(如,新用户有默认组),从而带来一些问题,因此,为了避免不必要的麻烦,上述两个命令的顺序不要颠倒。 |
近期评论