linux内核 task cmd,linux内核
标签:
1. 常见内核参数
内核参数一般在/proc/sys 目录中
临时改变某个系统参数的值,可以用两种方法来实现,如
1) echo 1 > /proc/sys/net/ipv4/ip_forward
2) sysctl -w net.ipv4.ip_forward=1
以上两种方法都可能立即开启路由转发功能,但如果系统重启,或者重启网络所设置的值即会丢失,
永久保留配置,可以修改/etc/sysctl.conf文件
net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1
sysctl命令的作用
-w 用此选项来改变一个sysctl设置 sysctl -w net.ipv4.ip_forward=1
-p 载入sysctl配置文件 -p后未指定路径,则载入 /etc/sysctl.conf
常用参数(0表示关闭,1表示开启)
net.ipv4.tcp_syncookies = 1 默认1
是否打开SYN Cookie功能,该功能可以防止部分SYN***
net.ipv4.ip_local_port_range= 1024 65535 默认32768 60999
可用端口的范围 修改成1024 65535 可提高并发连接数量
net.ipv4.tcp_fin_timeout =30 默认60
tcp超时时间
net.ipv4.tcp_timestamps = 1 默认1
TCP时间戳 服务器开启,客户端可关闭
net.ipv4.tcp_tw_recycle = 0 默认0
快速回收处于TIME_WAIT状态的socket,建议关闭
net.ipv4.tcp_tw_reuse = 1 默认0
针对TIME-WAIT,做为客户端可以启用
net.ipv4.tcp_max_tw_buckets = 262144 默认262144
针对TIME-WAIT,配置其上限
net.ipv4.tcp_max_orphans = 3276800 默认16384
orphans的最大值
net.ipv4.tcp_max_syn_backlog = 819200 默认128
增大SYN队列的长度,容纳更多连接
net.ipv4.tcp_keepalive_intvl = 30 默认75
探测失败后,间隔几秒后重新探测
net.ipv4.tcp_keepalive_probes = 3 默认9
探测失败后,最多尝试探测几次
net.ipv4.tcp_keepalive_time = 1200 默认7200
间隔多久发送1次keepalive探测包
net.netfilter.nf_conntrack_tcp_timeout_established = 600 默认432000
设置 conntrack tcp 状态的超时时间,如果系统出现下述异常时要考虑调整:ping: sendmsg: Operation not permitted
kernel: nf_conntrack: table full, dropping packet.
net.netfilter.nf_conntrack_max = 655350 默认65535
设置 conntrack 的上限,如果系统出现下述异常时要考虑调整:
ping: sendmsg: Operation not permitted
kernel: nf_conntrack: table full, dropping packet.
net.core.netdev_max_backlog = 500000 默认1000
网卡设备将请求放入队列的长度
net.core.somaxconn = 65536 默认128
已经成功建立连接的套接字将要进入队列的长度
net.core.rmem_default = 8388608 默认值:212992
默认的TCP数据接收窗口大小(字节)
net.core.wmem_default = 8388608 默认值:212992
默认的TCP数据发送窗口大小(字节)
net.core.rmem_max = 16777216 默认值:212992
最大的TCP数据接收窗口大小(字节)
net.core.wmem_max = 16777216 默认值:212992
最大的TCP数据发送窗口大小(字节)
net.ipv4.tcp_mem = 94500000 915000000 927000000 默认值:94389 125854 188778
内存使用的下限 警戒值 上限
net.ipv4.tcp_rmem = 4096 87380 16777216 默认值:4096 87380 6291456
socket接收缓冲区内存使用的下限 警戒值 上限
net.ipv4.tcp_wmem = 4096 16384 16777216 默认值:4096 16384 4194304
socket发送缓冲区内存使用的下限 警戒值 上限
net.ipv4.tcp_thin_dupack = 1 默认值:0
收到dupACK时要去检查tcp stream是不是 thin ( less than 4 packets in flight)
net.ipv4.tcp_thin_linear_timeouts = 1 默认值:0
重传超时后要去检查tcp stream是不是 thin ( less than 4 packets in flight)
net.unix.max_dgram_qlen = 30000 默认值:10
UDP队列里数据报的最大个数
kernel.randomize_va_space = 1 默认值:2
内核的随机地址保护模式
kernel.panic = 1 默认值:0
内核panic时,1秒后自动重启
kernel.corepattern = core%e 默认值:|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
程序生成core时的文件名格式
kernel.sysrq = 0 默认值:0
是否启用sysrq功能
vm.min_free_kbytes=901120 默认值:8039
保留内存的最低值
vm.panic_on_oom=1 默认值:0
发生oom时,自动转换为panic
vm.min_free_kbytes=1048576 默认值:45056
保留最低可用内存
vm.swappiness=20 默认值:60
数值(0-100)越高,越可能发生swap交换
fs.inotify.max_user_watches=8192000 默认值:8192
inotify的watch数量
fs.aio-max-nr=1048576 默认值:65536
aio最大值
fs.file-max = 1048575 默认值:98529
文件描述符的最大值
(针对lvs,关闭网卡LRO/GRO功能
ethtool -k eth0 查看LRO/GRO当前是否打开
ethtool -K eth0 lro off 关闭GRO
ethtool -K eth0 gro off 关闭GRO)
2.通过/proc查看top的进程状态
进程运行时会生成目录/proc/PID,里面记录进程详细状态,每个进程生成一个以pid为名的文件夹
[root@centos7 sudoers.d]#ll /proc/1
total 0
dr-xr-xr-x 2 root root 0 Dec 25 18:37 attr
-rw-r--r-- 1 root root 0 Dec 25 18:37 autogroup
-r-------- 1 root root 0 Dec 25 18:37 auxv
-r--r--r-- 1 root root 0 Dec 17 22:17 cgroup
--w------- 1 root root 0 Dec 25 18:37 clear_refs
-r--r--r-- 1 root root 0 Dec 17 22:17 cmdline
-rw-r--r-- 1 root root 0 Dec 17 22:17 comm
-rw-r--r-- 1 root root 0 Dec 25 18:37 coredump_filter
-r--r--r-- 1 root root 0 Dec 25 18:37 cpuset
lrwxrwxrwx 1 root root 0 Dec 25 18:37 cwd -> /
-r-------- 1 root root 0 Dec 17 22:17 environ
lrwxrwxrwx 1 root root 0 Dec 17 22:17 exe -> /usr/lib/systemd/systemd
dr-x------ 2 root root 0 Dec 25 18:37 fd
dr-x------ 2 root root 0 Dec 25 18:37 fdinfo
-rw-r--r-- 1 root root 0 Dec 25 18:37 gid_map
-r-------- 1 root root 0 Dec 25 18:37 io
-r--r--r-- 1 root root 0 Dec 25 18:37 limits
-rw-r--r-- 1 root root 0 Dec 17 22:17 loginuid
dr-x------ 2 root root 0 Dec 25 18:37 map_files
-r--r--r-- 1 root root 0 Dec 25 18:37 maps
-rw------- 1 root root 0 Dec 25 18:37 mem
-r--r--r-- 1 root root 0 Dec 15 15:54 mountinfo
-r--r--r-- 1 root root 0 Dec 25 18:37 mounts
-r-------- 1 root root 0 Dec 25 18:37 mountstats
dr-xr-xr-x 6 root root 0 Dec 25 18:37 net
dr-x--x--x 2 root root 0 Dec 25 18:37 ns
-r--r--r-- 1 root root 0 Dec 25 18:37 numa_maps
-rw-r--r-- 1 root root 0 Dec 25 18:37 oom_adj
-r--r--r-- 1 root root 0 Dec 25 18:37 oom_score
-rw-r--r-- 1 root root 0 Dec 24 18:58 oom_score_adj
-r--r--r-- 1 root root 0 Dec 25 18:37 pagemap
-r--r--r-- 1 root root 0 Dec 25 18:37 personality
-rw-r--r-- 1 root root 0 Dec 25 18:37 projid_map
lrwxrwxrwx 1 root root 0 Dec 17 22:18 root -> /
-rw-r--r-- 1 root root 0 Dec 25 18:37 sched
-r--r--r-- 1 root root 0 Dec 25 18:37 schedstat
-r--r--r-- 1 root root 0 Dec 17 22:17 sessionid
-rw-r--r-- 1 root root 0 Dec 25 18:37 setgroups
-r--r--r-- 1 root root 0 Dec 25 18:37 smaps
-r--r--r-- 1 root root 0 Dec 25 18:37 stack
-r--r--r-- 1 root root 0 Dec 17 22:17 stat
-r--r--r-- 1 root root 0 Dec 21 17:15 statm
-r--r--r-- 1 root root 0 Dec 17 22:17 status
-r--r--r-- 1 root root 0 Dec 25 18:37 syscall
dr-xr-xr-x 3 root root 0 Dec 25 18:37 task
-r--r--r-- 1 root root 0 Dec 25 18:37 timers
-rw-r--r-- 1 root root 0 Dec 25 18:37 uid_map
-r--r--r-- 1 root root 0 Dec 25 18:37 wchan
查看里面status文件会得到进程相关信息(与top类似)
[root@centos7 sudoers.d]#cat /proc/1/status
Name: systemd
Umask: 0000
State: S (sleeping)
Tgid: 1
Ngid: 0
Pid: 1
PPid: 0
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 128
Groups:
VmPeak: 256496 kB
VmSize: 191224 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 4208 kB
VmRSS: 3152 kB
RssAnon: 1524 kB
RssFile: 1628 kB
RssShmem: 0 kB
VmData: 148928 kB
VmStk: 132 kB
VmExe: 1320 kB
VmLib: 3716 kB
VmPTE: 116 kB
VmSwap: 124 kB
Threads: 1
SigQ: 1/4607
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 7be3c0fe28014a03
SigIgn: 0000000000001000
SigCgt: 00000001800004ec
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
CapAmb: 0000000000000000
Seccomp: 0
Cpus_allowed: ffffffff,ffffffff
Cpus_allowed_list: 0-63
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 50397
nonvoluntary_ctxt_switches: 3733
3. 分别用for和while 实现网段网址搜寻
实现192.168.0.0/24网段搜寻:
#!/bin/bash
for ip in {1..254} ;do
{
ping -c1 -w 1 192.168.0.$ip &>/dev/null && echo "192.168.0.$ip is success" ;
}&
done
wait
执行结果
[root@centos7 ~]#bash ip_for.sh
192.168.0.1 is success
192.168.0.109 is success
192.168.0.108 is success
#!/bin/bash
declare -i ip=1
while [ $ip -le 254 ] ; do
{
ping -c1 -w 1 192.168.0.$ip &>/dev/null && echo "192.168.0.$ip is success" ;
}&
let ip++
done
wait
执行结果
[root@centos7 ~]#bash ip_while.sh
192.168.0.1 is success
192.168.0.109 is success
192.168.0.108 is success
用{ }& wait 实现并发执行提高效率
4.initrd作用
initrd 是boot loader initialized RAM disk,一般是压缩过的。它存在的主要目的是在内核启动时加载它,安装其中的驱动,挂载系统的根
解压系统boot/文件下的initramfs-3.10.0-693.el7.x86_64.img文件
重命名为.gz文件
gunzip initramfs-3.10.0-693.el7.x86_64.gz
cpio -id < initramfs-3.10.0-693.el7.x86_64
查看解压后文件
bin etc initramfs-3.10.0-693.el7.x86_64 lib64 root sbin sys tmp var
dev init lib proc run shutdown sysroot usr
从文件可以看出里面内容很类似一个linux系统文件夹,initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起, 并作为内核引导过程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导过程的一部分来加载模块,这样才能在以后的引导过程中使用真正的文 件系统,并挂载实际的根文件系统。
标签:
来源: http://blog.51cto.com/6289984/2337047
linux内核 task cmd,linux内核相关推荐
- linux 上下文切换时对用户task和内核task区别对待——针对fpu
目录 关于pthread和kthread的说明 和kthread/pthread区别对待相关的数据结构 调用图 fpu load/store 在调度中的处理 fpu load/store 在KVM中的 ...
- 初探内核之《Linux内核设计与实现》笔记下
定时器和时间管理 系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要. 主要内容: 系统时间 定时器 定时器相关 ...
- Linux Kernel - Debug Guide (Linux内核调试指南 )
linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...
- Linux kernel pwn notes(内核漏洞利用学习)
前言 对这段时间学习的 linux 内核中的一些简单的利用技术做一个记录,如有差错,请见谅. 相关的文件 https://gitee.com/hac425/kernel_ctf 相关引用已在文中进行了 ...
- linux下poll和epoll内核源代码剖析
作者:董昊 博客链接http://donghao.org/uii/ poll和epoll的使用应该不用再多说了.当fd很多时,使用epoll比poll效率更高. 我们通过内核源码分析来看看到底是为什么 ...
- 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...
- linux内核启动后门,Linux内核模块入门之简单内核后门
内核模块简介 Linux内核支持运行时动态扩展,即运行时动态加载内核扩展模块(.ko文件),ko文件所包含的代码经加载后即成为内核代码的一部分,拥有内核特权,可以调用内核其它组件,访问内核空间数据以及 ...
- linux 内核空间 sy,在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysf...
级别: 初级 燚 杨 (), 计算机科学硕士 2006 年 2 月 16 日 本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数.模块参数 ...
- linux更新硬件时钟,Linux内核“11分钟模式”可以做的最大的硬件时钟更新是什么?...
当某些与时间相关的程序(如ntpd)在 Linux系统上运行时,内核将切换到所谓的"十一分钟模式"(参见hwclock手册页),它将自动从系统时钟更新硬件时钟十一分钟 在SLES1 ...
最新文章
- spyder一打开就卡了_欧姆龙plc 用 SD 卡上传/下载程序
- 论文不必参考任何文献?看到作者,网友大呼失敬了
- Python成长之路第一篇(4)_if,for,while条件语句
- GridView内嵌DropDownList操作
- python安装tensorflow_tensorflow安装过程-(windows环境下)---详解(摆平了很多坑!)...
- Cloud for Customer workCenterLoader
- CSharp for Jupyter Notebook
- EDAS投稿出现问题: notembedded: Upload failed: The font Helvetica is not embedded in the file
- JVM 晋升到老年代的动态年龄判断
- c#使用webbrowser时,设定IE版本
- 华硕老毛子(Padavan)——校园网锐捷(Ruijie)认证路由限制解决方案(锐捷(Ruijie)认证+赛尔认证)
- java共享汽车租赁系统
- 19种音频格式介绍及音质压缩比的比较
- AES对称加密原理及服务
- Linux14.04安装Mysql Linux公社
- mysql r_mysql:’r’是什么意思?
- HNOI2015 亚瑟王
- 微信小程序调用Android手机蓝牙BLE传输数据
- Windows 计算机上查看 DNS 缓存的方法
- Python NLP入门教程