调整 Linux 系统
本主题描述如何调整Linux操作系统以提高Web Server的性能。
-------------------------------------------------------
cat /proc/sys/net/ipv4/tcp_fin_timeout
cat /proc/sys/net/core/netdev_max_backlog
cat /proc/sys/net/core/somaxconn
cat /proc/sys/net/ipv4/tcp_keepalive_intvl
cat /proc/sys/net/ipv4/tcp_keepalive_probes
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 3000 > /proc/sys/net/core/netdev_max_backlog
echo 3000 > /proc/sys/net/core/somaxconn
echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
-------------------------------------------------------
关于本任务
遇到性能问题时,请检查操作系统设置以确定这些设置是否适合于您的应用程序。
过程
根据调整需求,配置下列设置和变量:
timeout_timewait参数
描述:确定TCP/IP在释放已关闭的连接并再次使用其资源前必须经过的时间。关闭与释放之间的这段时间称为 TIME_WAIT 状态或者两倍最大段生存期(2MSL)状态。此时间
期间,重新打开到客户机和服务器的连接的成本少于建立新连接。通过减少此条目的值,TCP/IP 可以更快地释放关闭的连接,并为新连接提供更多资源。如果正在运行的应用
程序需要快速释放连接、创建新的连接,并且因为许多连接处于TIME_WAIT状态而导致低吞吐量,那么调整此参数。
如何查看或设置:
发出以下命令,将 timeout_timewait 参数设置为30秒:
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
SUSE Linux Enterprise Server 8(SLES 8)SP2A - sched_yield_scale 调整
描述:Linux调度程序对上下文切换过度非常敏感,因此,已将修订包集成到 SLES 内核分发中,以便在线程发生处理时引入延迟。在SLES 8 SP3中将自动启用此修订包,但在
SLES 8 SP2A 或更高版本中,必须明确地启用它。
如何查看或设置:
将 SLES 8 service pack 升级到 SP2A。
发出 sysctl -w sched_yield_scale=1 命令。
缺省值:0
建议值:1
RedHat Advanced Server 2.1 内核更新
描述:RedHat Advanced Server 2.1 的内核更新已实现了影响WebSphere Application Server性能(尤其是内存到内存 HTTP 会话复制性能)的更改。
如何查看或设置:
发出 uname -a 命令
如果正在运行 2.4.9-e.23 之前的任何内核,请至少升级到 RedHat Advanced Server 2.1 内核,最好升级到受支持的最新内核。
缺省值:2.4.9-e.3
建议值:2.4.9-e.23
Linux 文件描述符(ulimit)
描述:指定支持打开的文件数。通常,缺省设置适合于大多数应用程序。如果将此参数值设置得太小,那么可能会显示文件打开错误、内存分配故障或连接建立错误。
如何查看或设置:请参阅有关 ulimit 命令的 UNIX 参考页面以了解不同 shell 的语法。对于 KornShell shell(ksh)程序,要将 ulimit 命令设置为 8000,请发出
ulimit -n 8000 命令。使用 ulimit -a 命令来显示所有系统资源限制的当前值。
缺省值:对于 SUSE Linux Enterprise Server 9(SLES 9),缺省值是 1024。
建议值:8000
连接储备
描述:当由于入局连接请求比率过高而导致连接故障时,请更改下列参数:
echo 3000 > /proc/sys/net/core/netdev_max_backlog
echo 3000 > /proc/sys/net/core/somaxconn
TCP_KEEPALIVE_INTERVAL
描述:确定两次isAlive时间间隔探测之间的等待时间。
如何查看或设置:发出以下命令来设置此值:
echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl
缺省值:75 秒
建议值:15 秒
TCP_KEEPALIVE_PROBES
描述:确定超时前的探测次数。
如何查看或设置:发出以下命令来设置此值:
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
缺省值:9 秒
建议值:5 秒
为 Java 虚拟机(JVM)堆分配大页(针对 SLES 9 测试)
某些应用程序要求使用非常大的堆以提高性能。通过使用CPU和操作系统提供的“大页”支持,可以降低 CPU 管理大型堆的开销。以下示例假定大页大小为 4MB,并且期望的
堆大小为 2300MB。
通过sysctl.conf文件(此文件通常是 /etc/sysctl.conf)设置下列三个设置。
注: 您必须具有 root 用户访问权才能修改此文件。并且,在尝试修改此文件前,请验证此文件是否是只读的。
通过发出以下命令,设置大页数(2300MB = 575 * 4MB):
vm.nr_hugepages = 575
通过发出以下命令,将最大共享段大小设置为 2300MB 加上一个较小的增量(大约 95MB)(2511724800 = 2300MB * 1048576 字节/MB + 100000000 字节):
kernel.shmmax = 2511724800
通过发出以下命令,设置要共享的总内存量:
kernel.shmall = 2511724800
指定-Xlp JVM选项,以使JVM堆能够利用大页。
将Xmx JVM选项设置为 2300MB。
将程序文本重新定位到较低的虚拟内存地址(0x10000000)中,从而为较大的堆提供更多地址空间。在 SUSE Linux Enterprise Server 9 上,请运行以下命令来重新定位
JVM 调用脚本或 .profile 文件中的文本:
echo "0x10000000" > /proc/self/mapped_base
分享到:
相关推荐
Linux C++ Web服务器是一种在Linux操作系统上用C++编程语言实现的HTTP服务器。它涉及到网络编程的核心概念,如TCP服务器和客户端、线程池管理以及I/O多路复用技术,如`select`和`epoll`。让我们深入探讨这些知识点。...
在"web_server"这个项目中,你可以深入学习和实践这些概念,通过阅读和理解源代码,你将能够提升自己的Linux网络编程技能,以及对Web服务器工作原理的理解。同时,这个项目也是进一步研究Web服务器性能优化、安全性...
本项目“client-and-server.rar_linux qt tcp client_webserver Qt_网络协议编程”旨在帮助你深入理解Web服务器在Linux平台上的移植过程,以及如何使用Qt进行TCP/IP网络通信的编程。以下将详细介绍相关知识点。 ...
在本文档中,我们探讨了一个使用Linux套接字(socket)编程技术实现的简单HTTP Web服务器。这个服务器是基于IP/TCP协议构建的,允许用户进行目录浏览和文件下载。以下是对核心概念、代码结构和功能的详细解释: 1. **...
1. **套接字编程**:Web服务器的核心是监听和处理客户端的TCP连接。在C语言中,通过调用`socket()`函数创建一个套接字,然后使用`bind()`将套接字绑定到特定的IP地址和端口上,接着`listen()`函数使服务器进入监听...
【Linux下Web Server的搭建研究】 在互联网时代,Web Server是不可或缺的重要组成部分,它作为TCP/IP因特网上最广泛使用的信息服务类型,不仅在技术领域有着深远的影响,而且深入到教育、政府、商业等多个领域。Web...
标题中的"webserver.rar"表明这是一个关于Web服务器的压缩包,特别强调了它是在Linux环境下用C++语言编写的,适合政府或相关组织("government6qw")使用,并且涉及到Linux、C++ Web开发以及HTTPS服务器("linux_c++_...
《Linux Apache Web Server Administration》是Craig Hunt所著,属于Linux图书馆系列,由Sybex出版社在2002年出版。此书详细介绍了Linux系统管理的各项基础与高级技能,特别强调了Apache Web服务器的安装和配置。...
这里的“webserver(1)_linux高并发服务器_源码”是一个针对该主题的实践项目,它采用Preactor模式并利用了Linux的epoll LT模型来处理大量并发连接。以下是对这些关键知识点的详细说明: **Linux高并发服务器:** 在...
### Linux部署Web网页:Tomcat + MSSQL Server 2008 R2 部署 FMC #### 一、概述 随着企业信息化建设的深入发展,越来越多的应用选择基于Linux平台进行部署。本文将详细介绍如何在Linux环境下部署一个包含Tomcat和...
总的来说,基于ARM和Linux的嵌入式Web Server设计与实现涉及到了硬件平台的选择与配置、嵌入式操作系统的定制、TCP/IP协议栈的实现、Web服务器的选取与优化以及CGI技术的应用。这样的系统为远程监测和控制提供了有效...
本文将深入探讨TCP服务器(tcpserver)和TCP客户端(tcpclient)的概念,以及如何在Linux中实现一个简单的TCP通信示例。这个"tcpserver_tcpclient.zip"压缩包包含了用于演示TCP通信的源代码和必要的构建工具。 首先...
gcc -o webserver 5.8-webserver.c -lsocket -lnsl ``` 3. **启动服务器**:在命令行中运行生成的可执行文件,例如: ``` ./webserver ``` 服务器会在默认的80端口开始监听。 4. **测试服务器**:在另一终端...
这个名为"Linux_TCP_IP.rar"的压缩包显然包含了与Linux系统下的TCP/IP编程相关的资源,特别是针对TCP客户端的实现以及远程连接的功能。让我们深入探讨一下这些知识点。 首先,TCP(Transmission Control Protocol)...
### Linux下Web服务器的安装与配置 #### 一、引言 在Linux环境下搭建Web服务器是一种常见的需求,尤其是在开发和部署基于Java的应用程序时。本文将详细介绍如何在Linux(CentOS)系统上安装并配置一个基于Tomcat的...
在Linux环境下部署Nacos-server-2.0.3版本,可以帮助开发者更高效地管理和维护分布式系统。下面将详细介绍这个最新版的Linux Nacos服务器及其相关知识点。 1. **Nacos简介** Nacos作为一个动态服务发现、配置和...
这个是只支持debian系列系统的测试工具,用于测试tcp、udp连接发送数据。目前使用中未发现不兼容问题,感觉设计和使用还是很不错的。
基于ARM芯片和嵌入式操作系统的带有WEBSERVER的嵌入式系统是这种技术的一个具体实例,它结合了强大的处理器性能和网络服务功能。 首先,我们要理解ARM(Advanced RISC Machines)芯片。ARM是微处理器架构的一种,以...
(牛客网C++课程)Linux 高并发Web服务器项目实战(带定时检测代码) 技术框架: 1. 线程池 + 非阻塞 socket + epoll + 事件处理的并发模型 2. 状态机解析HTTP请求 3. 心跳机制 4. 简易日志系统 主要内容: 1. ...
【Linux Web服务器配置】 在IT领域,Web服务器是用于托管网站和Web应用程序的软件,它接收HTTP(超文本传输协议)请求并返回HTML文件或其他Web内容。Linux操作系统因其稳定性、安全性和开源特性,常被选作Web服务器...