2010年1月

[root@rhce ~]# cat /proc/sys/vm/swappiness
60

该值默认为60。
swappiness=0 的时候,表示最大限度使用物理内存,然后才使用 swap 空间。
swappiness=100 的时候,表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间中。
现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对 swap 的使用,从而提高系统的性能。

修改 swappiness 参数有临时修改和永久修改两种方法:
临时修改:

[root@rhce ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@rhce ~]# cat /proc/sys/vm/swappiness
10

这里我们的修改已经生效,但是如果我们重启了系统,又会变成60。
永久修改:

在 /etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
或者
[root@rhce ~]# echo 'vm.swappiness=10'>> /etc/sysctl.conf

保存,重启,就生效了。

下载安装包

wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz

解压

tar -xvf  glibc-2.15.tar.gz
tar -xvf  glibc-ports-2.15.tar.gz

包合并

mv glibc-ports-2.15 glibc-2.15/ports

建立编译目录

mkdir glibc-build-2.15

编译

cd glibc-build-2.15
../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install

查看 glibc 支持的版本

strings libc.so | grep GLIBC

新加了一块磁盘

[root@iZ2zeh0wl8jq1asl4b3rf2Z ~]# fdisk -l
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008de3e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83884031    41940992   83  Linux

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

- 阅读剩余部分 -

报错是

Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

解决方案
首先查看 modules 目录下是否有 mod_access_compat.so、mod_authz_host.so
然后在 httpd.conf 下添加

LoadModule access_compat_module modules/mod_access_compat.so
LoadModule authz_host_module modules/mod_authz_host.so

通过 nmcli 命令

[root@master test]# nmcli con
名称    UUID                                  类型            设备
ens33   c96bc909-188e-ec64-3a96-6a90982b08ad  802-3-ethernet  ens33
virbr0  7f06cd4d-a01e-4ba9-a5f8-494179118ee6  bridge          virbr0

TCPCopy 常见问题:
出现 timeout 或者是频繁丢包

sysctl -w net.core.rmem_max=131071
sysctl -w net.core.wmem_max=131071
sysctl -p

虚拟机使用 ab 测试的结果
会有包堆积的情况 不会马上处理 在 ab 测试数据跑完后 依然在处理数据包
10000 100 缺包不明显
10000 500 出现 ack 处理异常 缺包不明显
10000 1000 出现 ack 处理异常 缺包不明显 有内存堆积不到 1MB
10000 2000 出现 ack 处理异常 缺包明显 3000 左右 有内存堆积 11MB
20000 500 出现 ack 处理异常 缺包不明显 有内存堆积 11MB
20000 1000 出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 21MB
20000 2000 出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 28MB

- 阅读剩余部分 -

tcpcopy结构.png
TCPCopy 默认从 IP 层抓包,从 IP 层发包,我们在测试服务器进行响应包的截获,并通过 intercept 程序返回响应包的必要信息给 TCPCopy。
在线上要引流的机器和测试机分别安装 TCPCopy,版本 tcpcopy-0.9.6.tar.gz
然后

configure
make
make install

- 阅读剩余部分 -

netcat 或者叫 nc 是 Linux 下的一个用于调试和检查网络工具包。
可用于创建 TCP/IP 连接,最大的用途就是用来处理 TCP/UDP 套接字。
这里我们将通过一些实例来学习 netcat 命令。
1.在服务器-客户端架构上使用 netcat
netcat 工具可运行于服务器模式,侦听指定端口

$ nc -l 2389

然后你可以使用客户端模式来连接到 2389 端口:

$ nc localhost 2389

现在如果你输入一些文本,它将被发送到服务器端:

$ nc localhost 2389
HI, 70data

在服务器的终端窗口将会显示下面内容:

$ nc -l 2389
HI, 70data

- 阅读剩余部分 -

使用 SecureCRT 或者 Xshell 时,偶尔发生屏幕假死,不能输入等情况。
后来发现,只要输入 ctrl+s,就会假死。
输入 ctrl+q 就可以恢复过来。
ctrl+s 是一个古老的 shell 控制键,再输入 ctrl+q 就可以恢复了。

- 阅读剩余部分 -