`
zhang_ly520
  • 浏览: 161983 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

( 转载)如何用Sysctl调整Linux操作系统的性能

阅读更多

Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项,这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。

查看所有可读变量:

% sysctl -a

读一个指定的变量,例如 kern.maxproc:

% sysctl kern.maxproc kern.maxproc: 1044

要设置一个指定的变量,直接用 variable=value 这样的语法:

# sysctl kern.maxfiles=5000

kern.maxfiles: 2088 -> 5000

您可以使用sysctl修改系统变量,也可以通过编辑sysctl.conf文件来修改系统变量。sysctl.conf 看起来很像 rc.conf。它用 variable=value 的形式来设定值。指定的值在系统进入多用户模式之后被设定。并不是所有的变量都可以在这个模式下设定。

sysctl 变量的设置通常是字符串、数字或者布尔型。 (布尔型用 1 来表示'yes',用 0 来表示'no')。

 

sysctl -w kernel.sysrq=0

sysctl -w kernel.core_uses_pid=1

sysctl -w net.ipv4.conf.default.accept_redirects=0

sysctl -w net.ipv4.conf.default.accept_source_route=0

sysctl -w net.ipv4.conf.default.rp_filter=1

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

sysctl -w net.ipv4.tcp_fin_timeout=30

sysctl -w net.ipv4.tcp_synack_retries=2

sysctl -w net.ipv4.tcp_keepalive_time=3600

sysctl -w net.ipv4.tcp_window_scaling=1

sysctl -w net.ipv4.tcp_sack=1

 

配置sysctl

 

编辑此文件:

 

vi /etc/sysctl.conf

 

 

如果该文件为空,则输入以下内容,否则请根据情况自己做调整:

 

# Controls source route verification

# Default should work for all interfaces

net.ipv4.conf.default.rp_filter = 1

# net.ipv4.conf.all.rp_filter = 1

# net.ipv4.conf.lo.rp_filter = 1

# net.ipv4.conf.eth0.rp_filter = 1

 

# Disables IP source routing

# Default should work for all interfaces

net.ipv4.conf.default.accept_source_route = 0

# net.ipv4.conf.all.accept_source_route = 0

# net.ipv4.conf.lo.accept_source_route = 0

# net.ipv4.conf.eth0.accept_source_route = 0

 

# Controls the System Request debugging functionality of the kernel

kernel.sysrq = 0

 

# Controls whether core dumps will append the PID to the core filename.

# Useful for debugging multi-threaded applications.

kernel.core_uses_pid = 1

 

# Increase maximum amount of memory allocated to shm

# Only uncomment if needed!

# kernel.shmmax = 67108864

 

# Disable ICMP Redirect Acceptance

# Default should work for all interfaces

net.ipv4.conf.default.accept_redirects = 0

# net.ipv4.conf.all.accept_redirects = 0

# net.ipv4.conf.lo.accept_redirects = 0

# net.ipv4.conf.eth0.accept_redirects = 0

 

# Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets

# Default should work for all interfaces

net.ipv4.conf.default.log_martians = 1

# net.ipv4.conf.all.log_martians = 1

# net.ipv4.conf.lo.log_martians = 1

# net.ipv4.conf.eth0.log_martians = 1

 

# Decrease the time default value for tcp_fin_timeout connection

net.ipv4.tcp_fin_timeout = 25

 

# Decrease the time default value for tcp_keepalive_time connection

net.ipv4.tcp_keepalive_time = 1200

 

# Turn on the tcp_window_scaling

net.ipv4.tcp_window_scaling = 1

 

# Turn on the tcp_sack

net.ipv4.tcp_sack = 1

 

# tcp_fack should be on because of sack

net.ipv4.tcp_fack = 1

 

# Turn on the tcp_timestamps

net.ipv4.tcp_timestamps = 1

 

# Enable TCP SYN Cookie Protection

net.ipv4.tcp_syncookies = 1

 

# Enable ignoring broadcasts request

net.ipv4.icmp_echo_ignore_broadcasts = 1

 

# Enable bad error message Protection

net.ipv4.icmp_ignore_bogus_error_responses = 1

 

# Make more local ports available

# net.ipv4.ip_local_port_range = 1024 65000

 

# Set TCP Re-Ordering value in kernel to ‘5′

net.ipv4.tcp_reordering = 5

 

# Lower syn retry rates

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 3

 

# Set Max SYN Backlog to ‘2048′

net.ipv4.tcp_max_syn_backlog = 2048

 

# Various Settings

net.core.netdev_max_backlog = 1024

 

# Increase the maximum number of skb-heads to be cached

net.core.hot_list_length = 256

 

# Increase the tcp-time-wait buckets pool size

net.ipv4.tcp_max_tw_buckets = 360000

 

# This will increase the amount of memory available for socket input/output queues

net.core.rmem_default = 65535

net.core.rmem_max = 8388608

net.ipv4.tcp_rmem = 4096 87380 8388608

net.core.wmem_default = 65535

net.core.wmem_max = 8388608

net.ipv4.tcp_wmem = 4096 65535 8388608

net.ipv4.tcp_mem = 8388608 8388608 8388608

net.core.optmem_max = 40960

 

如果希望屏蔽别人 ping 你的主机,则加入以下代码:

 

# Disable ping requests

net.ipv4.icmp_echo_ignore_all = 1

 

编辑完成后,请执行以下命令使变动立即生效:

 

/sbin/sysctl -p

/sbin/sysctl -w net.ipv4.route.flush=1

分享到:
评论

相关推荐

    调整Linux系统CPU频率.pdf

    Linux系统CPU频率调整是指在Linux操作系统中调整CPU频率以实现节能或提高性能的一种技术。这种技术可以根据系统负载和电池电量等情况来动态调整CPU频率,以达到节能或提高性能的目的。 在Linux系统中,CPU频率调整...

    优化Linux系统性能.pdf

    系统调整是优化系统性能的最后一步。可以使用sysctl命令来调整系统参数,例如调整网络参数、磁盘参数等。同时,也可以使用crontab命令来调整系统任务计划。 优化Linux系统性能需要从多方面入手,包括系统状态、CPU...

    如何设置Sysctl.conf用以提高Linux的性能(最完整的).docx

    ### 如何设置Sysctl.conf用以提高Linux的性能 #### Sysctl概述 `Sysctl`是一种强大的工具,用于调整Linux内核的各种参数,包括网络、内存管理和其他关键系统配置。通过对`/etc/sysctl.conf`文件进行适当的配置,...

    sysctl:LinuxBSD内核调整和网络安全强化优化,通过优化的sysctl调整提高了服务器系统的性能

    在Linux和BSD操作系统中,`sysctl`是一个强大的工具,用于动态地查看和调整系统内核的参数。这些参数涵盖了网络、内存管理、安全性等多个方面,对于系统性能优化和网络安全强化至关重要。本篇文章将深入探讨如何利用...

    多处理调度 linux 操作系统

    在Linux操作系统中,多处理调度是一项关键特性,它允许系统同时执行多个进程,优化系统资源的使用,并提高整体性能。本文将深入探讨Linux中的多处理调度机制,包括调度器、调度策略、调度类以及相关工具和实践。 1....

    linux操作系统观察资源常用命令

    在Linux操作系统中,管理和观察资源使用情况对于性能测试和分析至关重要。本文将详细介绍几个常用的命令,帮助新手理解和掌握如何在Linux环境下监控系统性能。 1. **top命令**:top是最直观的实时资源监控工具,它...

    Linux服务器查看性能命令

    本文将详细介绍 Linux 服务器性能查看命令,包括查看操作系统及硬件信息、CPU 信息、Mem 信息、磁盘信息、网卡信息、主板信息、机器所有硬件信息等多个方面。 1. 查看服务器操作系统及硬件信息(压力测试前) 在...

    linux命令sysctl使用.docx

    sysctl 命令可以帮助管理员提高系统性能,例如调整 TCP/IP 堆栈和虚拟内存系统的高级选项。 sysctl 命令的语法 ------------------- sysctl 命令的语法如下: sysctl [选项] [参数] 其中,选项可以是以下之一: ...

    通过调整Linux TCP参数提示服务器性能

    Linux 作为一个开源操作系统,具有高度的可配置性和可扩展性,在服务器性能优化中扮演着重要角色。 TCP(Transmission Control Protocol)是 Linux 中的一个核心协议,负责管理网络连接和数据传输。然而,TCP 的缺省...

    sysctl-cookbook-源码.rar

    Linux内核是操作系统的核心,负责管理硬件资源、进程调度、内存管理等关键任务。用户空间则是运行应用程序的地方,与内核通过系统调用交互。`sysctl`就是这样的一个系统调用,它为管理员提供了直接修改内核配置的...

    通过linux sysctl调优

    在Linux操作系统中,`sysctl`是一个非常强大的工具,用于查看和修改内核参数,从而实现对系统的微调。本文将深入探讨如何利用`sysctl`参数进行系统调优,并给出具体的优化建议。 ### 一、Sysctl基本概念 `sysctl`...

    ux操作系统性能调优的方法

    【Linux 操作系统性能调优方法详解】 在Linux操作系统中,为了提高系统性能,我们可以针对不同的子系统进行优化。在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server等企业级Linux系统中,通常采用以下...

    linux sysctl

    通过对`sysctl`进行合理的配置,特别是针对TIME_WAIT状态的优化,可以显著提升Linux系统的性能和稳定性。这在高并发的服务器环境中尤为重要,能够有效地利用有限的系统资源,提高服务的响应速度和服务质量。

    Linux系统性能调优-内容指南完整版

    - **理解Linux性能指标**:如CPU使用率、内存使用、磁盘I/O速率、网络带宽等,它们是评估系统性能的基础。 2. **监控和压测工具** - **监控工具**:如`top`、`vmstat`、`iostat`、`netstat`用于实时查看系统状态...

    [服务器性能优化]Linux下高并发socket最大连接数和sysctl(time_wait)设置

    在Linux系统中,服务器性能优化是一项关键...通过调整`sysctl.conf`文件中的相关参数,可以有效地提升系统性能,降低延迟,增强服务的稳定性。不过,任何改动都需要结合具体业务场景和硬件资源进行,以达到最佳效果。

    Linux性能优化大师.pdf

    《Linux性能优化大师》这本书是Linux系统管理员和开发者的重要参考资料,它深入探讨了如何通过各种技术手段提升Linux系统的运行效率和稳定性。以下是一些关键的知识点: 1. **监控工具**:书中会介绍一系列用于系统...

    提高Linux系统性能加速网络应用程序

    总的来说,开发高性能的Linux网络应用程序需要深入理解socket编程、TCP/IP协议以及操作系统内核的优化机制。结合适当的工具和技术,开发者可以构建出既可靠又高效的网络服务,满足各种复杂场景的需求。

    介绍Linux 操作系统及常用指令

    以上只是Linux操作系统的冰山一角,还有更多高级主题,如Shell脚本编程、系统监控、系统调试和性能优化等。学习Linux不仅需要了解这些基本指令,还要深入理解其工作原理,才能更好地利用这个强大的开源操作系统。

Global site tag (gtag.js) - Google Analytics