FreeBSD 打开文件数限制

samba报错smbd’s max open files = 16384
一般是系统的open flies限制

查看系统限制:
[root@storage ~]# sysctl -a | grep maxfiles
kern.maxfiles: 12328
kern.maxfilesperproc: 11095
kern.openfiles: 8760
FreeBSD 8.2,默认系统打开文件数12328,每进程打开文件数11095,kern.openfiles是系统当前打开文件数。

设置新的系统限制:
[root@storage ~]# sysctl kern.maxfiles=65536
[root@storage ~]# sysctl kern.maxfilesperproc=32768

查看某个进程的系统限制,nofile就是这个进程打开文件数的限制
24443是某个smbd的pid
[root@storage ~]# mount -t procfs proc /proc
[root@storage ~]# cd /proc/24443
[root@storage /proc/24443]# ls -l
total 0
-r–r–r–  1 root  wheel  0 Nov  7 20:15 cmdline
———-  1 root  wheel  0 Nov  7 20:15 ctl
———-  1 root  wheel  0 Nov  7 20:15 dbregs
-r–r–r–  1 root  wheel  0 Nov  7 20:15 etype
lr–r–r–  1 root  wheel  0 Nov  7 20:15 file -> /usr/local/sbin/smbd
———-  1 root  wheel  0 Nov  7 20:15 fpregs
-r–r–r–  1 root  wheel  0 Nov  7 20:15 map
———-  1 root  wheel  0 Nov  7 20:15 mem
———-  1 root  wheel  0 Nov  7 20:15 note
———-  1 root  wheel  0 Nov  7 20:15 notepg
———-  1 root  wheel  0 Nov  7 20:15 osrel
———-  1 root  wheel  0 Nov  7 20:15 regs
-r–r–r–  1 root  wheel  0 Nov  7 20:15 rlimit
-r–r–r–  1 root  wheel  0 Nov  7 20:15 status
[root@storage /proc/24443]# cat rlimit
cpu -1 -1
fsize -1 -1
data 34359738368 34359738368
stack 536870912 536870912
core -1 -1
rss -1 -1
memlock -1 -1
nproc 5547 5547
nofile 32768 32768
sbsize -1 -1
vmem -1 -1
npts -1 -1
swap -1 -1

/etc/login.conf可以配置某个用户的系统资源限制,默认是无限制的,就是受限于系统内核限制

/etc/sysctl.conf里面配置对开机启动的服务无效

/boot/loader.conf里面配置对开机启动的服务有效

Apache 配置SSL

SSLEngine on
SSLProtocol all -SSLv2 //只允许SSLv3和TLSv1,SSLv2有缺陷禁止掉
SSLCipherSuite RSA:DH:DSS:!EXP:!NULL:!ADH:!EDH:!LOW:!RC4:!MD5:HIGH:MEDIUM //最终的结果就是Key Exchange=RSA/DH,Authentication=RSA/DSS,Cipher Encoding=AES(128/256)/3DES(168),MAC Digest=SHA1
SSLCertificateFile /etc/ssl/certs/nnlm.cer //CA颁发的证书
SSLCertificateKeyFile /etc/ssl/private/nnlm.key //证书的私钥
SSLCertificateChainFile /etc/ssl/certs/chain.cer //证书链,所有的证书链全部写到一个文件里面

Debian 安装 VMware Tools 之前的准备

debian 6.0.0 安装的时候只选了Standard system utilities,虽然在安装过程中不认识vmxnet3网卡,但是安装完成后即使没有安装VMware Tools,debian也是可以识别vmxnet3网卡的。

编辑/etc/apt/sources.list,把原来的都注释了,加入下面的内容
deb http://ftp.cn.debian.org/debian squeeze main
deb-src http://ftp.cn.debian.org/debian squeeze main
deb http://ftp.cn.debian.org/debian squeeze-updates main
deb-src http://ftp.cn.debian.org/debian squeeze-updates main
deb http://mirrors.ustc.edu.cn/debian-security/ squeeze/updates main
deb-src http://mirrors.ustc.edu.cn/debian-security/ squeeze/updates main

在安装VMware Tools之前还需要执行 aptitude install make linux-headers-2.6-amd64 来安装gcc make linux-headers等,可喜的是这些都在CD1上就有。
安装mysql的不要忘记运行一下mysql_secure_installation

Cisco MARS 55 硬盘使用情况

原配500GB硬盘,全新安装MARS的默认磁盘使用情况:
[pnadmin]$ diskusage
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             857M  543M  271M  67% /
/dev/hda1             125M   16M  103M  14% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda5             9.9G  1.2G  8.3G  12% /opt
/dev/sda6              20G  71M   19G   1% /log
/dev/sda7              74G   41M   71G  1% /pnarchive
/dev/sda8             9.9G   30M  9.4G   1% /tmp
/dev/sda9             9.9G  1.8G  7.6G  19% /u01
/dev/sda11            312G  13G  284G  5% /u02
/dev/sda10            9.9G  8.1G  1.3G  87% /u03

升级到1TB硬盘,MARS运行较长时间后,磁盘使用情况基本稳定:
[pnadmin]$ diskusage
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             857M  538M  276M  67% /
/dev/hda1             125M   16M  103M  14% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda5             9.9G  1.3G  8.2G  14% /opt
/dev/sda6              20G  179M   19G   1% /log
/dev/sda7              74G   13G   58G  18% /pnarchive
/dev/sda8             9.9G   90M  9.3G   1% /tmp
/dev/sda9             9.9G  2.4G  7.0G  26% /u01
/dev/sda11            770G  171G  561G  24% /u02
/dev/sda10            9.9G  8.1G  1.3G  87% /u03

理解 VMware 内存资源管理

在虚拟化应用中,内存是最为宝贵的资源。同CPU和存储资源管理相比,虚拟化的内存资源管理更为复杂。

一、内存回收:

VMware ESX hypervisor(管理程序)能够截获虚拟机第一次访问某内存,将物理内存填零后分配给虚拟机,但是hypervisor无法得知虚拟机中哪些内存是空闲的。hypervisor不断的将内存分配给虚拟机,当在内存超配(memory overcommitment)的情况下主机物理内存将可能耗尽,因此hypervisor需要从虚拟机中回收(reclaim)内存,ESX hypervisor使用以下机制回收内存:

  1. 透明页共享(Transparent Page Sharing):当多个虚拟机在一个主机上运行时,可能有些内存页是一样的,比如一样的Guest OS。hypervisor通过周期性的扫描内存页生成hash值在内存hash总表中查找,一旦hash匹配就会进行完整比较,确认内存页完全一样后hypervisor会删除冗余内存页以指针代之,类似于存储中的重复数据删除功能。当某虚拟机对共享内存页试图写时,hypervisor会复制一个这个虚拟机的专有页来修改,保证共享页不被破坏。这种内存回收的速度取决于扫描的速度,在ESX(i)的高级设置中可以设置扫描速度和时间间隔。所以最好将相同或者相近的OS部署在一台host上面,以便更好的使用TPS节省内存。
  2. 气球膨胀(Ballooning):由于hypervisor无法得知虚拟机中哪些内存是空闲的,因此依靠VMware Tools在Guest OS中的气球驱动(balloon driver)来回收内存。当需要从该虚拟机回收内存时,气球膨胀从Guest OS中请求内存,分配给气球驱动的内存可被hypervisor安全的回收,Guest OS自行决定将哪些内存swapping交换到硬盘上以保证分配给气球驱动内存。显然需要安装VMware Tools才能实现气球回收内存,通过这种方式回收内存较慢,依赖于Guest OS内存分配的速度。
  3. 内存交换(Hypervisor Swapping):当虚拟机启动时就会创建一个内存swap文件,文件大小为最大内存交换量(虚拟机配置内存-内存预留)。当上面两种回收方式不能满足需求时,hypervisor会进行swapping将虚拟机的物理内存交换到硬盘上。hypervisor并不知道将哪些内存交换好,Guest OS也不知道哪些内存被交换了,这将极大的影响虚拟机的性能,当出现这种情况时说明需要加内存了。
  4. 内存压缩(Memory Compression):这是4.1的新功能,对内存的交换的优化。如果swapping的内存页是可压缩的,则将其压缩后存储在压缩缓存区中,这样再次访问这个被swapping的内存时仅需要解压缩,而不是从硬盘读取,这将快的多。不能压缩或压缩缓冲区满则会与硬盘进行真正的swapping。在ESX(i)的高级设置中可以设置压缩缓存的大小等。
  • 当主机可用内存高于等于6%时,hypervisor仅使用透明页共享回收内存(当没有设置虚拟机内存限制时)。如果虚拟机设定了内存限制,则hypervisor使用ballooning甚至swapping回收内存直到低于限定值。
  • 当主机可用内存接近4%时,hypervisor使用ballooning回收内存,一般情况下可以及时的回收内存,让可用内存保持在4%以上。
  • 如果ballooning不足以回收内存,主机可用内存接近2%时,hypervisor在ballooning回收内存的基础上增加使用swapping(并激活内存压缩)加速内存回收,让可用内存保持在4%以上。
  • 罕见的当主机可用内存只有1%时,hypervisor除了继续使用ballooning和swapping回收内存,还禁止所有虚拟机申请更多内存。

二、虚拟机内存分配

VMware ESX(i)提供了三个参数来控制虚拟机的内存分配(虚拟机设置-资源-内存)

  1. “限制(Limit)”限定了分配给虚拟机物理内存的上限,如果虚拟机使用的内存超过该限定值则hypervisor强制回收内存,默认是无限制,即已虚拟机内存大小为限。虚拟机硬件设置中的内存对于大多数Guest OS是不能热添加的,有的能热添加但是要使用添加的内存还要重启Guest OS,只有少数Guest OS能热添加并使用的,因为这个需要Guest OS识别,因此对Guest OS要求高。但是内存限制可以在虚拟机运行时随意的调整,Guest OS无需感知是透明的。
  2. “预留(Reservation)”是保证分配给虚拟机最低物理内存的下限,即hypervisor至多从虚拟机回收内存到预留值为止,不再继续回收,保证一个基本的内存可避免性能降低到无法忍受。
  3. “份额(Shares)”是当主机内存过量使用时,虚拟机可获得的物理内存是通过一个公式计算得到的,份额是其中一项。默认份额=虚拟机内存*10。
  • 公式:ρ=份额/(活动内存+k*空闲内存),ρ就是该虚拟机可获得物理内存比例的分子,分母是所有虚拟的ρ的和。
    k是惩罚因子,k=1/(1-IMT),IMT为空闲内存税(Idle Memory Tax),默认IMT=75%,即k=4,IMT值可以在ESX(i)的高级设置中修改。
    显然份额越大,活动内存比例越高则ρ越大,可获得的物理内存越多。hypervisor从ρ最小的虚拟机开始回收内存。

参考文献:
Understanding Memory Resource Management in VMware ESX 4.1

空闲内存税的算法

vMA 配置 FastPass

  使用vMA管理ESX/ESXi的时候每条命令都需要输入–server 192.168.1.101 –usarname root,很是麻烦。其实可以使用vifp让vMA记住这些服务器的用户名密码。

使用下面的命令添加服务器,并输入root的密码。
vifp addserver 192.168.1.101 --username root
vifp addserver 192.168.1.102 --username root

使用vifp listservers可以显示在FastPass中的所有服务器:
[vi-admin@localhost ~]$ vifp listservers
192.168.1.101 ESXi
192.168.1.102 ESXi

使用vifptarget -s设置需要操作的主机,设置后所有的操作都针对此主机,使用完后可-s一个新的主机,或者-c退出。
[vi-admin@localhost ~]$ vifptarget -s 192.168.1.101
[vi-admin@localhost ~][192.168.1.101]$ esxcfg-ntp -l
Configured NTP servers:
192.168.1.1
[vi-admin@localhost ~][192.168.1.101]$ vifptarget -s 192.168.1.102
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -l
No NTP servers configured.
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -a 172.16.170.1
Configuring 172.16.170.1 as NTP server.
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -l
Configured NTP servers:
192.168.1.1
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -s
Stopped NTP service on host.
[vi-admin@localhost ~][192.168.1.102]$ esxcfg-ntp -r
Started NTP service on host.
[vi-admin@localhost ~][192.168.1.102]$ vifptarget -c
[vi-admin@localhost ~]$

VMware 网卡故障转移和负载均衡

  默认配置下只要vSwitch中有一个以上的网卡,则可进行故障转移,如果有一个以上的网卡设为活动则可进行负载均衡。但是基于源端口和源MAC hash负载均衡是不完善的,对于出站流量基于源端口(虚拟机的网络端口)进行负载均衡,即每个虚拟机的网络端口对应一个Host的物理端口,出站是这个端口显然入站也是。如果一个Host的主要网络流量均由一个虚拟机的一个网络端口产生,且虚拟机的虚拟网卡很多都是10G而Host的网卡很多都是1G,那么这样的负载均衡基本没有意义了,虚拟机一个网络端口的速度不可能大于Host的一个物理端口的速度。

  为了实现更佳的负载均衡,修改vSwitch的负载均衡为基于IP hash,这样出站流量将根据源和目标IP选择链路,同时需要在Host的物理端口连接的交换机端口上配置Etherchannel以便负载均衡入站流量,只有这样才可能使虚拟机一个网络端口的速度大于Host的一个物理端口的速度,虚拟机的万兆虚拟网卡才更有意义。

网易、搜狐、QQ之企业邮箱对比

用户数和客户端支持:
网易:200个,用满后可申请扩容(人工审核要求较高),支持POP3/SMTP。
搜狐:个人100、企业200,需要上传证件才能使用POP3/SMTP。
QQ:200个,可以通过邀请其他人用QQ企业邮箱增加到最多500个,支持POP3/SMTP/IMAP。

邮箱容量:
网易:3GB。
搜狐:2GB。
QQ:无限。

用户分组:
网易:支持。
搜狐:不支持。
QQ:支持多级分组。

SSL:
网易:登陆时可选SSL,进入后非SSL,不过证书是CNNIIC签发的:(
搜狐:不提供SSL。
QQ:全程SSL,POP3/SMTP/IMAP也支持SSL,证书Equifax颁发。

二级域名:
网易:不支持。
搜狐:支持。
QQ:支持。

后台管理:
网易:用户管理,管理日志。
搜狐:用户管理,管理日志,用户使用空间和发信数量统计。
QQ:用户管理,管理日志,用户发信统计和日志,分级管理员,错误地址转发。

特点:
搜狐:会话式邮件,邮件全文搜索
QQ:企业网盘