网站的优点缺点,html5电影网站建设,注册公司需要提供的资料及公司注册流程,做一个论坛网站要多少钱Linux系统内核:修改TCP/IP调优参数
所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义:
1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲。
2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲。
3.…Linux系统内核:修改TCP/IP调优参数
所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义:
1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲。
2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲。
3. /proc/sys/net/ipv4/tcp_timestamps — 时间戳在(请参考RFC 1323)TCP的包头增加12个字节。
4. /proc/sys/net/ipv4/tcp_sack — 有选择的应答。
5. /proc/sys/net/ipv4/tcp_window_scaling — 支持更大的TCP窗口. 如果TCP窗口最大超过65535(64KB), 必须设置该数值为1。
6. rmem_default — 默认的接收窗口大小。
7. rmem_max — 接收窗口的最大大小。
8. wmem_default — 默认的发送窗口大小。
9. wmem_max — 发送窗口的最大大小。
/proc目录下的所有内容都是临时性的, 所以重启动系统后任何修改都会丢失。
建议在系统启动时自动修改TCP/IP参数:
把下面代码增加到/etc/rc.local文件, 然后保存文件, 系统重新引导的时候会自动修改下面的TCP/IP参数: echo 256960 /proc/sys/net/core/rmem_default
echo 256960 /proc/sys/net/core/rmem_max
echo 256960 /proc/sys/net/core/wmem_default
echo 256960 /proc/sys/net/core/wmem_max
echo 0 /proc/sys/net/ipv4/tcp_timestamps
echo 1 /proc/sys/net/ipv4/tcp_sack
echo 1 /proc/sys/net/ipv4/tcp_window_scaling TCP/IP参数都是自解释的, TCP窗口大小设置为256960, 禁止TCP的时间戳(取消在每个数据包的头中增加12字节), 支持更大的TCP窗口和TCP有选择的应答。
上面数值的设定是根据互连网连接和最大带宽/延迟率来决定。
注: 上面实例中的数值可以实际应用, 但它只包含了一部分参数。
另外一个方法: 使用 /etc/sysctl.conf 在系统启动时将参数配置成您所设置的值: net.core.rmem_default 256960
net.core.rmem_max 256960
net.core.wmem_default 256960
net.core.wmem_max 256960
net.ipv4.tcp_timestamps 0
net.ipv4.tcp_sack 1
net.ipv4.tcp_window_scaling 1 linux文件描述符1024限制
今天突然报了 open files limit...原来linux默认的文件描述符1024(ulimit -a命令查看)被用光了,为了增大文件描述符号,说要编译内核才行,今天研究了半天,居然没成功,后来干脆,用 ulimit -HSa 65536 (1MB64个文件描述符)似乎也生效,这里特别需要注意的地方,别忘了将上面一句加入到/etc/profile里面去,然后用lsof -p JAVA_PID|wc -l 查看jboss似乎已经可以跑到了1758. 附:文件描述符是一个简单的整数用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0第二个是1依此类推。Unix 操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是unix 通常有一个系统级的限制。因为squid 的工作方式文件描述符的限制可能会极大的影响性能。当squid 用完所有的文件描述符后它不能接收用户新的连接。也就是说用完文件描述符导致拒绝服务。直到一部分当前请求完成相应的文件和socket 被关闭squid 不能接收新请求。当squid发现文件描述符短缺时它会发布警告。在运行./configure 之前检查你的系统的文件描述符限制是否合适能给你避免一些麻烦。大多数情况下1024 个文件描述符足够了。非常忙的cache可能需要4096或更多。在配置文件描述符限制时我推荐设置系统级限制的数量为每个进程限制的2 倍。 2、怎么突破具体方法 先查看LINUX默认的文件描述符 # ulimit -n1024我们用命令 ulimit -HSn 65536 来增大文件描述符然后编译安装squid 把ulimit -HSn 65536放到/etc/rc.d/rc.local让启动时加载。 以下为转载 Linux在Linux 上配置文件描述符有点复杂。在编译squid 之前你必须编辑系统include 文件中的一个然后执行一些shell 命令。请首先编辑/usr/include/bits/types.h 文件改变__FD_SETSIZE 的值#define _ _FD_SETSIZE 8192下一步使用这个命令增加内核文件描述符的限制# echo 8192 ; /proc/sys/fs/file-max最后增加进程文件描述符的限制在你即将编译squid 的同一个shell 里执行sh# ulimit -Hn 8192该命令必须以root 运行仅仅运行在bash shell。不必重启机器。使用这个技术你必须在每一次系统启动后执行上述echo 和ulimit 命令或者至少在squid 启动之前。假如你使用某个rc.d 脚本来启动squid那是一个放置这些命令的好地方。 基本系统调节 在对系统的 Apache、PHP 和 MySQL 组件进行调优之前应该花一些时间确保底层 Linux 组件的运行正常。还应该对正在运行的服务进行缩减只运行需要的那些服务。这不但是一种良好的安全实践而且可以节省内存和 CPU 时间。 一些快速的内核调优措施 大多数 Linux 发布版都定义了适当的缓冲区和其他 Transmission Control ProtocolTCP参数。可以修改这些参数来分配更多的内存从而改进网络性能。设置内核参数的方法是通过 proc 接口也就是通过读写 /proc 中的值。幸运的是sysctl 可以读取 /etc/sysctl.conf 中的值并根据需要填充 /proc这样就能够更轻松地管理这些参数。清单 2 展示在互联网服务器上应用于 Internet 服务器的一些比较激进的网络设置。清单 2. 包含较为激进的网络设置的 /etc/sysctl.conf # Use TCP syncookies when needednet.ipv4.tcp_syncookies 1# Enable TCP window scalingnet.ipv4.tcp_window_scaling: 1# Increase TCP max buffer sizenet.core.rmem_max 16777216net.core.wmem_max 16777216# Increase Linux autotuning TCP buffer limitsnet.ipv4.tcp_rmem 4096 87380 16777216 net.ipv4.tcp_wmem 4096 65536 16777216# Increase number of ports availablenet.ipv4.ip_local_port_range 1024 65000 将这些设置添加到 /etc/sysctl.conf 的现有内容中。第一个设置启用 TCP SYN cookie。当从客户机发来新的 TCP 连接时数据包设置了 SYN 位服务器就为这个半开的连接创建一个条目并用一个 SYN-ACK 数据包进行响应。在正常操作中远程客户机用一个 ACK 数据包进行响应这会使半开的连接转换为全开的。有一种称为 SYN 泛滥SYN flood 的网络攻击它使 ACK 数据包无法返回导致服务器用光内存空间无法处理到来的连接。SYN cookie 特性可以识别出这种情况并使用一种优雅的方法保留队列中的空间细节参见 参考资料 一节。大多数系统都默认启用这个特性但是确保配置这个特性更可靠。 启用TCP窗口伸缩使客户机能够以更高的速度下载数据。TCP 允许在未从远程端收到确认的情况下发送多个数据包默认设置是最多 64 KB在与延迟比较大的远程客户机进行通信时这个设置可能不够。窗口伸缩会在头中启用更多的位从而增加窗口大小。 后面四个配置项增加 TCP 发送和接收缓冲区。这使应用程序可以更快地丢掉它的数据从而为另一个请求服务。还可以强化远程客户机在服务器繁忙时发送数据的能力。 最后一个配置项增加可用的本地端口数量这样就增加了可以同时服务的最大连接数量。 在下一次引导系统时或者下一次运行 sysctl -p /etc/sysctl.conf 时这些设置就会生效。 配置磁盘来提高性能 磁盘在 LAMP 架构中扮演着重要的角色。静态文件、模板和代码都来自磁盘组成数据库的数据表和索引也来自磁盘。对磁盘的许多调优尤其是对于数据库集中于避免磁盘访问因为磁盘访问的延迟相当高。因此花一些时间对磁盘硬件进行优化是有意义的。 首先要做的是确保在文件系统上禁用 atime 日志记录特性。atime 是最近访问文件的时间每当访问文件时底层文件系统必须记录这个时间戳。因为系统管理员很少使用 atime禁用它可以减少磁盘访问时间。禁用这个特性的方法是在 /etc/fstab 的第四列中添加 noatime 选项。清单 3 给出了一个配置示例。 清单3. 演示如何启用 noatime 的 fstab 示例 /dev/VolGroup00/LogVol00 / ext3 defaults,noatime 1 1LABEL/boot /boot ext3 defaults,noatime 1 2devpts /dev/pts devpts gid5,mode620 0 0tmpfs /dev/shm tmpfs defaults 0 0proc /proc proc defaults 0 0sysfs /sys sysfs defaults 0 0LABELSWAP-hdb2 swap swap defaults 0 0LABELSWAP-hda3 swap swap defaults 0 0 在清单3中只修改了 ext3 文件系统因为 noatime 只对驻留在磁盘上的文件系统有帮助。为让这一修改生效不需要重新引导只需重新挂装每个文件系统。例如为了重新挂装根文件系统运行 mount / -o remount。 有多种磁盘硬件组合而且 Linux 不一定能够探测出访问磁盘的最佳方式。可以使用 hdparm 命令查明和设置用来访问 IDE 磁盘的方法。hdparm -t /path/to/device 执行速度测试可以将这个测试结果作为性能基准。为了使结果尽可能准确在运行这个命令时系统应该是空闲的。清单 4 给出在 hda 上执行速度测试的结果。 清单4. 在 /dev/hd 上执行的速度测试 # hdparm -t /dev/hda/dev/hda: Timing buffered disk reads: 182 MB in 3.02 seconds 60.31 MB/sec 这一测试说明在这个磁盘上读取数据的速度是大约每秒 60 MB。 在尝试一些磁盘调优选项之前必须注意一个问题。错误的设置可能损害文件系统。有时候会出现一个警告指出这个选项与硬件不兼容但是有时候没有警告消息。因此在将系统投入生产之前必须对设置进行彻底的测试。在所有服务器上都采用标准的硬件也会有所帮助。 表 2 列出比较常用的一些选项。表 2. hdparm 的常用选项选项 描述 -vi 向磁盘查询它支持的设置以及它正在使用的设置。 -c 查询/启用 (E)IDE 32 位 I/O 支持。hdparm -c 1 /dev/hda 启用这个设置。 -m 查询/设置每中断多扇区模式。如果设置大于零设置值就是每个中断可以传输的最大扇区数量。 -d1-X 启用直接内存访问DMA传输并设置 IDE 传输模式。hdparm 手册页详细说明了在 -X 后面可以设置的数字。只有 在-vi说明目前并未使用最快速的模式的情况下才需要进行这个设置。 不幸的是对于 Fiber Channel and Small Computer Systems InterfaceSCSI系统调优依赖于具体的驱动器。 必须将有帮助的设置添加到启动脚本中比如 rc.local。 http://www.linuxeden.com/html/softuse/20070130/25284.html
http://blog.chinaunix.net/u/19673/showart.php?id302262
http://www.lupaworld.com/viewnews_19052_page_2.html