如何在Linux中修改参数? (linux修改参数)

Linux是一个非常强大的操作系统,在其中修改参数是非常必要的,可以让系统更加快速和稳定。在Linux中,修改参数并非难事,只需要掌握一些基本的命令即可。

1. 修改系统参数

在Linux中,修改系统参数是非常常见的,可以用来优化系统性能。常见的系统参数包括内存大小、系统的更大打开文件描述符数量、以及网络相关参数等等。

在Linux中,修改系统参数的最常见方法是通过/proc/sys文件系统。/proc/sys文件系统是一个虚拟文件系统,它可以用来修改系统内核参数。我们需要使用命令cd /proc/sys进入到该目录下,然后就可以通过一些命令修改系统参数了。

例如,要修改网络缓冲区的大小,可以使用以下命令:

“`

echo “4096” > /proc/sys/net/core/wmem_max

“`

这个命令将会将网络缓冲区的大小修改为4096字节。

2. 修改用户参数

除了系统参数,我们还可以修改用户参数,例如用户的环境变量或shell配置。

要修改用户参数,最常见的方法是修改用户的.bashrc文件。在Linux中,.bashrc文件是每个用户的环境变量配置文件,它可以用来定制用户的shell环境。

要修改用户的环境变量,我们可以在.bashrc文件中添加一些新的环境变量,例如:

“`

export PATH=$PATH:/usr/local/myapp/bin

“`

这个命令将会将/usr/local/myapp/bin添加到PATH环境变量中。同样的,我们也可以在.bashrc文件中添加自己的shell配置,例如别名等等。

3. 修改程序参数

除了系统参数和用户参数,我们还可以修改程序参数。在程序中,我们经常需要修改一些参数来优化程序的性能和功能。在Linux中,修改程序参数也非常容易,只需要一些简单的命令即可。

要修改程序的参数,最常见的方法是使用程序的命令行选项。例如,要让ls命令只显示文件夹的名称,可以使用以下命令:

“`

ls -d

“`

-d是ls命令的一个选项,它表示只显示目录名称,而不显示目录中的文件。

4.

在Linux中,修改参数是非常必要的,可以让系统更加快速和稳定。无论是修改系统参数、用户参数还是程序参数,都可以通过一些简单的命令来实现。掌握这些命令,可以让你在Linux中更加自如的进行系统优化和定制。当然,在修改参数之前,请务必备份相关文件,以防不测。

相关问题拓展阅读:

一般优化linux的内核,需要优化什么参数

首先要知道一点所有的TCP/IP的参数修改是临时的,因为它们都位于/PROC/SYS/NET目录下,如果想使参数长期保存,可以通过编辑/ETC/SYSCTL.CONF文件来实现,这里不做详细说明,只针对Linux的TCPIP内核参数优化列举相关参数:

1、为自动调优定义socket使用的内存

2、默认的TCP数据接收窗口大小(字节)

3、更大的TCP数据接收窗口

4、默认的TCP发送窗口大小

5、更大的TCP数据发送窗口

6、在每个网络接口接收数据包的速率比内核处理这些包速率快时,允许送到队列的数据包更大数目

7、定义了系统中每一个端口更大的监听队列长度

8、探测消息未获得相应时,重发该消息的间隔时间

9、在认定tcp连接失效之前,最多发送多少个keepalive探测消息等。

相关优化参数代码:

sh#  net.core.wmem_default 发送缓存区预留内存默认大小 默认值 16k

#  net.core.rmem_default 接受缓存区预留内存默认大小 默认值 16k

#  net.core.wmem_max 发送缓存区预留内存更大值 默认值 128k

#  net.core.rmem_max 接受缓存区预留内存更大值 默认值 128k

#  net.unix.max_dgram_qlen 进程间通信发送数据, 默认10

#  net.ipv4.tcp_syncookies

#  net.ipv4.syn_retries

#  net.ipv4.tcp_fin_timeout 如果socket连接由本端关闭,则保持在FIN-WAIT-2状态的时间

#  net.ipv4.tcp_keepalive_time 当keepalive起作用的时候,tcp发送keepalive消息的频度,默认2小时

#  net.ipv4.route_max_size 路由缓存更大值

首先要知道一点所有的TCP/IP的参数修改是临时的,因为它们都位于/PROC/SYS/NET目录下,如果想使参数长期或誉保存,可以通过编辑/ETC/SYSCTL.CONF文件来实现,这里不做详细说明,只针对Linux的TCPIP内核参数优化列举相关参数:

1、为自动调优定义socket使裤芹用的内存

2、默认的TCP数据接收窗口大小(字节)

3、更大的TCP数据接收窗口

4、默认的TCP发送窗口大小

5、更大的TCP数据发送窗口

6、在每个网络接口接收数据包的速率比内核处理这些包速率快时,允许送到队列的数据包更大数目

7、定义了系统中每一个端口更大的监听队列长度

8、探测消息未获得相应时,重发该消息的间隔时间

9、在认定tcp连接失效之前,最多发送多少个keepalive探测消息等。

相关优化参数代码:

sh#  net.core.wmem_default 发送缓存区预留内存默认大小 默胡团毕认值 16k

#  net.core.rmem_default 接受缓存区预留内存默认大小 默认值 16k

#  net.core.wmem_max 发送缓存区预留内存更大值 默认值 128k

#  net.core.rmem_max 接受缓存区预留内存更大值 默认值 128k

#  net.unix.max_dgram_qlen 进程间通信发送数据, 默认10

#  net.ipv4.tcp_syncookies

#  net.ipv4.syn_retries

#  net.ipv4.tcp_fin_timeout 如果socket连接由本端关闭,则保持在FIN-WAIT-2状态的时间

#  net.ipv4.tcp_keepalive_time 当keepalive起作用的时候,tcp发送keepalive消息的频度,默认2小时

#  net.ipv4.route_max_size 路由缓存更大值

方法只对拥有大量TIME_WAIT状态的连接导致系统资源消耗有效,如果不是这种情况下,效果可能不明显。可以使用netstat命令去查TIME_WAIT状态的连接状态,输入下面的组合命令,查看当前TCP连接的状态和对应的连接数量:

#netstat -n | awk ‘/^tcp/ {++S} END {for(a in S) print a, S}’

这个命令会输出类似下面的结果:

LAST_ACK 16

SYN_RECV 348

ESTABLISHED 70

FIN_WAIT1 229

FIN_WAIT2 30

CLOSING 33

TIME_WAIT 18098

我们只用关心TIME_WAIT的个数,在这里可以看到,有18000多个TIME_WAIT,这样就占用了18000多个端口。要知道端口的数量只有65535个,占用一个少一个,会严重的影响到后继的新连接。这种情况下,我们就有必要调整下Linux的TCP内核参数,让系统更快的释放TIME_WAIT连接。

用vim打开此迹配置文件:#vim /etc/sysctl.conf

在这个文件中,加入下面的几行内容:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

输入下面的命令,让内核参数生效:#sysctl -p

简单的说明上面的参数的含义:

net.ipv4.tcp_syncookies = 1

#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1

#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1

#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;

net.ipv4.tcp_fin_timeout

#修改系统默认的 TIMEOUT 时间。

在经过这样的调整之后,除了会进一步提升服务器的负载能力之外,还能够防御小流量程度的DoS、CC和SYN攻击。

此外,如果你的连接数本身就很森竖并多,我们可以再优化一下TCP的可使用端口范围,进一步提升服务器的并发能力。依然是往上面的参数文件中,加入下面这些配置:

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range =

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

#这几个参数,建议只在流量非常大的服务器上开启,会有显著的效果。一般的流量小的服务器上,没有必要去设置这几个参数。

net.ipv4.tcp_keepalive_time = 1200

#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range =

#表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为10000到65000。(注意:这里不要将纤竖更低值设的太低,否则可能会占用掉正常的端口!)

net.ipv4.tcp_max_syn_backlog = 8192

#表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets = 6000

#表示系统同时保持TIME_WAIT的更大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息。默 认为180000,改为6000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT的更大数量,避免Squid服务器被大量的TIME_WAIT拖死。

内核其他TCP参数说明:

net.ipv4.tcp_max_syn_backlog = 65536

#记录的那些尚未收到客户端确认信息的连接请求的更大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。

net.core.netdev_max_backlog = 32768

#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的更大数目。

net.core.somaxconn = 32768

#web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。

net.core.wmem_default =

net.core.rmem_default =

net.core.rmem_max = #更大socket读buffer,可参考的优化值:873200

net.core.wmem_max = #更大socket写buffer,可参考的优化值:873200

net.ipv4.tcp_timestps = 0

#时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

net.ipv4.tcp_synack_retries = 2

#为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。

net.ipv4.tcp_syn_retries = 2

#在内核放弃建立连接之前发送SYN包的数量。

#net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

# 开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。

net.ipv4.tcp_wmem =73200

# TCP写buffer,可参考的优化值:73200

net.ipv4.tcp_rmem =873200

# TCP读buffer,可参考的优化值:873200

net.ipv4.tcp_mem =

# 同样有3个值,意思是:

net.ipv4.tcp_mem:低于此值,TCP没有内存压力。

net.ipv4.tcp_mem:在此值下,进入内存压力阶段。

net.ipv4.tcp_mem:高于此值,TCP拒绝分配socket。

上述内存单位是页,而不是字节。可参考的优化值是:

net.ipv4.tcp_max_orphans =

#系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。

如果超过这个数字,连接将即刻被复位并打印出警告信息。

这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,

更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_fin_timeout = 30

关于linux修改参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何在Linux中修改参数? (linux修改参数)