当我们执行下面的hello.py时,使用的flask自带的服务器,完成了web服务的启动。在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部署flask程序。Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。
区分几个概念 :
WSGI:全称是Web Server Gateway Interface(web服务器网关接口),它是一种规范,它是web服务器和web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
uwsgi:是一种传输协议,用于定义传输信息的类型。
uWSGI:是实现了uwsgi协议WSGI的web服务器。
我们的部署方式: nginx + gunicorn + flask
web开发中,部署方式大致类似。简单来说,前端代理使用Nginx主要是为了实现分流、转发、负载均衡,以及分担服务器的压力。Nginx部署简单,内存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。
正向代理 :请求经过代理服务器从局域网发出,然后到达互联网上的服务器。
特点 :服务端并不知道真正的客户端是谁。
反向代理 :请求从互联网发出,先进入代理服务器,再转发给局域网内的服务器。
特点 :客户端并不知道真正的服务端是谁。
区别 :正向代理的对象是客户端。反向代理的对象是服务端。
查看命令行选项 : 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。
直接运行 :
指定进程和端口号 : -w: 表示进程(worker)。 -b:表示绑定ip地址和端口号(bind)。--access-logfile:表示指定log文件的路径
作为守护进程后台运行 :
阿里云服务器默认安装到 /user/sbin/ 目录,进入目录,启动 ngnix:
Ubuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将/etc/nginx/sites-available/default文件替换掉就可以了。
新建一个 default 文件,添加以下内容:
修改完成后重启nginx即可。
Ubuntu 上配置 Nginx 另一种方法,cd 到 /etc/nginx/conf.d 文件夹,新建 xxx.conf 文件(xxx 可以是项目名,只要是 .conf 文件即可),写入以下内容:
需要监听 https 请求时,写入以下内容:
使用aptitude安装:下载并安装Beanstalkd运行以下命令:
aptitude install -y beanstalkd
编辑默认配置文件让随着系统启动
vim /etc/default/beanstalkd
打开文件后,向下滚动并找到底部线#开始= yes。将其更改为:
START=yes
下面介绍源码安装
我们需要从源代码安装过程的一个关键工具- Git。
运行以下获取Git在你系统上:
aptitude install -y git
下载必要的开发工具软件包:
aptitude install -y build-essential
使用Git克隆(下载)官方库:
git clone https://github.com/kr/beanstalkd
进入到下载目录:
cd beanstalkd
从源代码构建应用程序:
make
安装:
make install
再介绍一下centos下源码安装:
解压:
tar xzf beanstalkd-1.4.6.tar.gz
cd beanstalkd-1.4.6
/configure
make
make install
默认安装路径 :/usr/local/bin/
查看版本:
/usr/local/bin/beanstalkd -v
1.4.6
再附加一个启动脚本,从Fedora下挖来的 startup 脚本:
#!/bin/sh
#
# beanstalkd - a simple, fast workqueue service
#
# chkconfig: - 57 47
# description: a simple, fast workqueue service
# processname: beanstalkd
# config: /etc/sysconfig/beanstalkd
#
### BEGIN INIT INFO
# Provides: beanstalkd
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Stop: 0 1 2 6
# Short-Description: start and stop beanstalkd
# Description: a simple, fast work-queue service
### END INIT INFO
# Source function library.
/etc/rc.d/init.d/functions
# Source networking configuration.
/etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] &&exit
exec="/usr/local/bin/beanstalkd"
prog=$(basename $exec)
# default options, overruled by items in sysconfig
BEANSTALKD_ADDR=127.0.0.1
BEANSTALKD_PORT=11300
BEANSTALKD_USER=beanstalkd
[ -e /etc/sysconfig/beanstalkd ] &&. /etc/sysconfig/beanstalkd
lockfile=/var/lock/subsys/beanstalkd
start() {
[ -x $exec ] || exit 5
echo -n $"Starting $prog: "
# if not running, start it up here, usually something like "daemon $exec"
options="-l ${BEANSTALKD_ADDR} -p ${BEANSTALKD_PORT} -u ${BEANSTALKD_USER}"
if [ "${BEANSTALKD_MAX_JOB_SIZE}" != "" ]then
options="${options} -z ${BEANSTALKD_MAX_JOB_SIZE}"
fi
if [ "${BEANSTALKD_BINLOG_DIR}" != "" ]then
if [ ! -d "${BEANSTALKD_BINLOG_DIR}" ]then
echo "Creating binlog directory (${BEANSTALKD_BINLOG_DIR})"
mkdir -p ${BEANSTALKD_BINLOG_DIR} &&chown ${BEANSTALKD_USER}:${BEANSTALKD_USER} ${BEANSTALKD_BINLOG_DIR}
fi
options="${options} -b ${BEANSTALKD_BINLOG_DIR}"
if [ "${BEANSTALKD_BINLOG_FSYNC_PERIOD}" != "" ]then
options="${options} -f ${BEANSTALKD_BINLOG_FSYNC_PERIOD}"
else
options="${options} -F"
fi
if [ "${BEANSTALKD_BINLOG_SIZE}" != "" ]then
options="${options} -s ${BEANSTALKD_BINLOG_SIZE}"
fi
fi
daemon $exec -d $options
retval=$?
echo
[ $retval -eq 0 ] &&touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
# stop it here, often "killproc $prog"
killproc $prog -INT
retval=$?
echo
[ $retval -eq 0 ] &&rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
restart
}
force_reload() {
restart
}
rh_status() {
# run checks to determine if the service is running or use generic status
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q &&exit 0
$1
stop)
rh_status_q || exit 0
$1
restart)
$1
reload)
rh_status_q || exit 7
$1
force-reload)
force_reload
status)
rh_status
condrestart|try-restart)
rh_status_q || exit 0
restart
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?
使用Beanstalkd
在安装之后,您就可以开始使用Beanstalkd服务器。以下是运行守护进程的选项:
-b DIR wal directory
-f MSfsync at most once every MS milliseconds (use -f0 for "always fsync")
-F never fsync (default)
-l ADDR listen on address (default is 0.0.0.0)
-p PORT listen on port (default is 11300)
-u USER become user and group
-z BYTES set the maximum job size in bytes (default is 65535)
-s BYTES set the size of each wal file (default is 10485760)
(will be rounded up to a multiple of 512 bytes)
-c compact the binlog (default)
-n do not compact the binlog
-v show version information
-V increase verbosity
-h show this help
使用例子:
# Usage: beanstalkd -l [ip address] -p [port #]
# For local only access:
beanstalkd -l 127.0.0.1 -p 11301 &
管理服务:
如果安装包管理器(i.e. aptitude),你将能够管理Beanstalkd作为服务守护进程。
# To start the service:
service beanstalkd start
# To stop the service:
service beanstalkd stop
# To restart the service:
service beanstalkd restart
# To check the status:
service beanstalkd status
获得Beanstalkd客户端库
Beanstalkd配有一长串的支持客户端库来处理许多不同的应用程序部署。这个列表的支持语言和框架,包括:
●Python
●Django
●Go
●Java
●Node.js
●Perl
●PHP
●Ruby
●and more.
查看完整列表支持,寻找你最喜欢的语言和安装说明,查看客户端库页面Beanstalkd Github上。
使用Beanstalkd
在本节之前,完成这篇文章,让我们快速Beanstalkd的基本用法。在我们的示例中,我们将使用Python语言和Beanstald Python bindings ——beanstalkc。
安装beanstalkc,运行以下命令:
pip install pyyaml
pip install beanstalkc
基本操作
在所有Python文件你想处理Beanstalkd时,需要导入beanstalkc并连接:
import beanstalkc
# Connection
beanstalk = beanstalkc.Connection(host='localhost', port=11301)
To enqueue a job:
beanstalk.put('job_one')
To receive a job:
job = beanstalk.reserve()
# job.body == 'job_one'
To delete a job after processing it:
job.delete()
To use a specific tube (i.e. queue / list):
beanstalk.use('tube_a')
To list all available tubes:
beanstalk.tubes()
# ['default', 'tube_a']
Final example (nano btc_ex.py):
import beanstalkc
# Connect
beanstalk = beanstalkc.Connection(host='localhost', port=11301)
# See all tubes:
beanstalk.tubes()
# Switch to the default (tube):
beanstalk.use('default')
# To enqueue a job:
beanstalk.put('job_one')
# To receive a job:
job = beanstalk.reserve()
# Work with the job:
print job.body
# Delete the job:
job.delete()
当您运行上面的脚本时,您应该会看到工作的主体被打印:
python btc_ex.py
# job_one
总体的,不好归类的/media 用来挂载usb存储设备,DVD, CD-ROM等
/mnt 用来临时挂载文件系统,可插拔的设备应该挂载到/media上去
/home 除root之外的用户目录的默认所在地
/root root用户目录
/bin 最常用的命令
/sbin 系统管理员使用的命令(sbin=system bin)
/usr/local 使用源码安装的话,一般把prefix目录指定到这里,如/usr/local/ruby
/usr/share/applications desktop文件是桌面的菜单项
~/.gnome*,~/.gconf* gnome面板的个人配置信息,当gnome面板乱了,可以尝试删除这些文件来恢复默认面板
/boot目录,kernel相关部分
/boot/symvers-%{KRELEASE}.gz 保存着内核中所有符号的crc值
/boot/System.map-%{KRELEASE} 给kernel使用的符号表(symbol table)
/boot/vmlinuz-%{KRELEASE} 可引导的、压缩的内核
/boot/initrd-%{KRELEASE}.img 包含了支持 Linux 系统两阶段引导过程所需要的必要可执行程序和系统文件
/boot/config-%{KRELEASE} 包括kernel的make config
/boot/message cpio格式的打包文件,存放Grub的配置信息,里面包括了图片,文字说明等内容
/boot目录,grub配置
/boot/grub/menu.lst 一个链接文件,真实文件是grub.conf
/boot/grub/grub.conf grub的配置文件
/boot/grub/device.map 设备的映射文件
/boot/grub/splash.xpm.gz grub开机画面的gzip压缩包
/boot/grub/stageN 一般有stage1和stage2,是grub的核心,受限于mbr512字节的大小限制,所以切开成几个,stage1是用来加载stage2的
/boot/grub/XXX_stage1_5 stage2文件较大,一般存放于文件系统中,需要XXX_stage1_5来识别各种各样的文件系统
/etc目录,系统用户/用户组
/etc/passwd 存放所有系统用户及相关信息
/etc/shadow 存放所有系统用户的密码信息
/etc/group 存放所有系统用户组及相关信息
/etc/gshadow 存放所有系统用户组的密码信息
/etc目录,系统启动流程相关
/etc/issue 发行版信息
/etc/redhat-release redhat版本信息
/etc/inittab 系统初始化配置
/etc/init.d 存放服务脚本的地方
/etc/rc[0-6S].d 每个运行级别对应的服务,里边的脚本都是链接到/etc/init.d目录
/etc/rc rc启动脚本
/etc/rc.local 在所有init脚本结束后调用
/etc/rc.sysinit 在系统启动时运行一次
/etc/profile 环境变量配置
/etc/profile.d 保存一些脚本,可在/etc/profile中调用
~/.bash_profile 针对某个用户的配置,会调用.bash_rc
~/.bashrc 针对某个用户的配置,会调用/etc/bashrc
/etc/bashrc 使用bash时,可设置全局环境配置
~/.bash_history 命令的历史记录
~/.bash_logout 用户退出时执行
/etc/xinetd.conf xinetd的配置文件
/etc/xinetd.d 存放xinetd服务的地方
/etc目录,基本应用配置相关
/etc/skel 存放用户文件的“骨架”,当一个用户创建的时候,里边的文件就会拷贝到相应的home目录
/etc/X11 存放X Window的系统配置文件,例如xorg.conf
/etc/DIR_COLORS ls的时候,文件/文件夹显示的颜色
/etc/mtab 记录目前挂载的文件系统信息
/etc/fastboot 由shutdown -f 所产生的 ,在重启之后, 系统会去检查这个文件是否存在以决定是否要执行fsck
/etc/nologin 系统关闭的时候自动产生,里边放着shutdown message。在这个时候如果有用户企图登录,就会打印出这个文件存放的message,然后阻止你登录
/etc/fstab 默认的文件系统挂载情况
/etc/virc vi的配置
/etc/vimrc vim的配置
/etc/wgetrc wget的配置
/etc/yum.conf yum的配置
/etc/yum.repos.d yum源的存放位置
/etc/kdump.conf kdump内核的配置文件
/etc/my.cnf mysql的配置文件
/etc/ssh ssh的配置文件目录,重要的有sshd_config
/etc/syslog.conf syslog的配置文件
/etc/updatedb.conf updatedb的配置文件
/etc/mtools.conf mtools配置,用于在*UNIX系统中直接访问dos/win文件系统
/etc/sysctl.conf sysctl预加载的配置文件
/etc/moprobe.conf modprobe的配置文件
/etc/ld.so.conf 加载动态链接库的配置文件,默认会加载ld.so.conf.d里边的配置
/etc/ld.so.conf.d 存放动态链接库的配置文件
/etc/ld.so.cache 动态链接库的缓存,二进制文件,可以通过ldconfig --print-cache查看
/etc/services 网络服务列表(服务名,端口,协议等)
/etc目录,域名解析,主机访问控制
/etc/host.conf 定义DNS客户端主机发出域名解析的处理顺序,默认是先查看/etc/hosts文件,再发送远程请求
/etc/hosts 自定义ip-域名解析
/etc/resolv.conf DNS服务器地址
/etc/hosts.allow 和hosts.deny一起用来作为tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。hosts.allow控制可以访问本机的IP地址
/etc/hosts.deny 控制禁止访问本机的IP。如果和hosts.allow的配置有冲突,以hosts.deny为准
/etc目录,定时任务控制
/etc/crontab cron任务的配置文件,一般在里边配置有cron.hourly,cron.daily,cron.weekly和cron.monthly
/etc/cron.d 如果你要在特殊的时间使用crontab,可以把配置放到文件夹里边,配置的格式和/etc/crontab一样
/etc /cron.daily 每天定时任务
/etc/cron.hourly 每小时定时任务
/etc/cron.monthly 每月定时任务
/etc/cron.weekly 每星期定时任务
/etc/cron.allow 指定那些用户可以使用crontab
/etc/cron.deny 指定哪些用户禁止使用crontab,如果文件存在且为空,所有人都可以使用,如果文件不存在,那么只有root可以使用
/etc/at.allow 指定那些用户可以使用at
/etc/at.deny 指定哪些用户禁止使用at,如果文件存在且为空,所有人都可以使用,如果文件不存在,那么只有root可以使用
/dev目录 硬件设备信息
/dev/hd[a-z] 第几个IDE硬盘
/dev/tty[0-9] 第几个虚拟控制台
/dev/sd[a-z] 第几个SCSI或SATA硬盘
/dev/zero 一个无穷尽地提 供0(NULL)的设备,可以用来初始化文件
/dev/null 一个空设备,可以向它输出任何数据,而任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶
/dev/stderr 链接文件,指向/proc/self/fd/2(标准错误)
/dev/stdin 链接文件,指向/proc/self/fd/0(标准输入)
/dev/stdout 链接文件,指向/proc/self/fd/1(标准输出)
/dev/console 系统控制台,也就是直接和系统连接的监视器。如果你用cat查看该设备,并敲入一些内容,可以看到在屏幕上回显
/dev/fd[0-9] 第几个软驱设备
/dev/st SCSI磁带驱动器
/dev/pty 提供远程登陆伪终端支持。在进行Telnet登录时就要用到该设备
/dev/ttys 计算机串行接口,对于DOS来说就是com1口
/dev/cua 计算机串行接口,与调制解调器一起使用的设备
/proc目录 虚拟文件系统
/proc/apm Advanced Power Management(APM)系统信息,与apm命令相关
/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
/proc/cmdline 启动时传递给kernel的参数信息
/proc/cpuinfo cpu的信息
/proc/crypto 内核使用的所有已安装的加密密码及细节
/proc/devices 已经加载的设备并分类
/proc/dma 已注册使用的ISA DMA频道列表
/proc/execdomains Linux内核当前支持的execution domains
/proc/fb 帧缓冲设备列表,包括数量和控制它的驱动
/proc/filesystems 内核当前支持的文件系统类型
/proc/interrupts x86架构中的每个IRQ中断数
/proc/iomem 每个物理设备当前在系统内存中的映射
/proc/ioports 一个设备的输入输出所使用的注册端口范围
/proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
/proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
/proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
/proc/locks 内核锁住的文件列表
/proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)
/proc/meminfo RAM使用的相关信息
/proc/misc 其他的主要设备(设备号为10)上注册的驱动
/proc/modules 所有加载到内核的模块列表
/proc/mounts 系统中使用的所有挂载
/proc/mtrr 系统使用的Memory Type Range Registers (MTRRs)
/proc/partitions 分区中的块分配信息
/proc/pci 系统中的PCI设备列表
/proc/slabinfo 系统中所有活动的 slab 缓存信息
/proc/stat 所有的CPU活动信息
/proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
/proc/uptime 系统已经运行了多久
/proc/swaps 交换空间的使用情况
/proc/version Linux内核版本和gcc版本
/proc/bus 系统总线(Bus)信息,例如pci/usb等
/proc/driver 驱动信息
/proc/fs 文件系统信息
/proc/ide ide设备信息
/proc/irq 中断请求设备信息
/proc/net 网卡设备信息
/proc/scsi scsi设备信息
/proc/tty tty设备信息
/proc/net/dev 显示网络适配器及统计信息
/proc/vmstat 虚拟内存统计信息
/proc/vmcore 内核panic时的内存映像
/proc/diskstats 取得磁盘信息
/proc/schedstat kernel调度器的统计信息
/proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用
/proc目录, 进程N的信息
/proc/N pid为N的进程信息
/proc/N/cmdline 进程启动命令
/proc/N/cwd 链接到进程当前工作目录
/proc/N/environ 进程环境变量列表
/proc/N/exe 链接到进程的执行命令文件
/proc/N/fd 包含进程相关的所有的文件描述符
/proc/N/maps 与进程相关的内存映射信息
/proc/N/mem 指代进程持有的内存,不可读
/proc/N/root 链接到进程的根目录
/proc/N/stat 进程的状态
/proc/N/statm 进程使用的内存的状态
/proc/N/status 进程状态信息,比stat/statm更具可读性
/proc/self 链接到当前正在运行的进程
/var目录 存放经常变化数据的地方
/var/lib/rpm 存放大多数rpm相关的文件
/var/cache/yum yum升级时下载的rpm文件的临时存放地,还包括系统中rpm包的头信息
/var/spool/cron/$username 每个用户自定义的cron任务,可以使用crontab或vi来操作
/var/lock 一般用来存放文件锁
/var/log 一般用来存放日志文件
/var/run 一般用来存放pid文件
/var/crash 一般是存放系统崩溃时产生的信息
/var/cache 一般用来存放缓存信息,例如yum package的缓存
/etc/sysconfig目录 系统基本配置
/etc/sysconfig/amd 为amd提供操作参数,用来自动mount/unmount文件系统
/etc/sysconfig/apmd 由apmd使用来配置电源设置
/etc/sysconfig/arpwatch 在启动的时候传递给arpwatch守护进程的参数
/etc/sysconfig/authconfig 设置主机使用的验证方式
/etc/sysconfig/autofs 自动挂载设备的自定义选项
/etc/sysconfig/clock 系统硬件时钟的设置
/etc/sysconfig/desktop 设置新用户的桌面和进入运行级别5所使用的显示管理器
/etc/sysconfig/dhcpd 在启动的时候传递给dhcpd守护进程的参数
/etc/sysconfig/gpm 在启动的时候传递给gpm守护进程的参数
/etc/sysconfig/hwconf 列出kudzu检测到的所有硬件
/etc/sysconfig/i18n 默认系统语言,系统支持的所有语言,默认系统字体
/etc/sysconfig/init 系统启动时的显示方式
/etc/sysconfig/ip6tables-config 在系统启动或者ip6tables服务启动时,内核用来设置IPv6包过滤
/etc/sysconfig/iptables-config 在系统启动或者iptables服务启动时,内核用来设置包过滤
/etc/sysconfig/keyboard 控制键盘的行为
/etc/sysconfig/kudzu 在启动的时候通过kudzu触发一次安全的系统硬件探查
/etc/sysconfig/named 在启动的时候传递给named守护进程的参数
/etc/sysconfig/netdump netdump服务的配置文件
/etc/sysconfig/network 网络的配置信息
/etc/sysconfig/ntpd 在启动的时候传递给ntpd守护进程的参数
/etc/sysconfig/radvd 在启动的时候传递给radvd守护进程的参数
/etc/sysconfig/samba 在启动的时候传递给smbd/nmbd守护进程的参数
/etc/sysconfig/selinux selinux的基本控制选项
/etc/sysconfig/spamassassin 在启动的时候传递给spamd守护进程的参数
/etc/sysconfig/squid 在启动的时候传递给squid守护进程的参数
/etc/sysconfig/vncservers 配置vnc服务启动的方式
/etc/sysconfig/xinetd 在启动的时候传递给xinetd守护进程的参数
/proc/sys目录 系统重要配置参数,涉及众多内核参数
/proc/sys/fs/file-max 可以分配的文件句柄的最大数目
/proc/sys/fs/file-nr 已分配文件句柄的数目、已使用文件句柄的数目、文件句柄的最大数目
/proc/sys/fs/inode-* 任何以名称“inode”开头的文件所执行的操作与上面那些以名称“file”开头的文件所执行的操作一样,但所执行的操作与索引节点有关,而与文件句柄无关
/proc/sys/fs/overflowuid 和 /proc/sys/fs/overflowgid 这两个文件分别保存那些支持 16 位用户标识和组标识的任何文件系统的用户标识(UID)和组标识(GID)
/proc/sys/fs/super-max 该文件指定超级块处理程序的最大数目。挂装的任何文件系统需要使用超级块,所以如果挂装了大量文件系统,则可能会用尽超级块处理程序
/proc/sys/fs/super-nr 显示当前已分配超级块的数目
/proc/sys/kernel/acct 该文件有三个可配置值,根据包含日志的文件系统上可用空间的数量(以百分比表示),这些值控制何时开始进行进程记帐:如果可用空间低于这个百分比值,则停止进程记帐/如果可用空间高于这个百分比值,则开始进程记帐/检查上面两个值的频率(以秒为单位)
/proc/sys/kernel/ctrl-alt-del 该值控制系统在接收到 ctrl+alt+delete 按键组合时如何反应
/proc/sys/kernel/domainname 配置网络域名
/proc/sys/kernel/hostname 主机名
/proc/sys/kernel/msgmax 指定了从一个进程发送到另一个进程的消息的最大长度
/proc/sys/kernel/msgmnb 指定在一个消息队列中最大的字节数
/proc/sys/kernel/msgmni 指定消息队列标识的最大数目
/proc/sys/kernel/panic 如果发生“内核严重错误(kernel panic)”,内核在重新引导之前等待的时间
/proc/sys/kernel/printk 该文件有四个数字值,它们根据日志记录消息的重要性,定义将其发送到何处
/proc/sys/kernel/shmall 在任何给定时刻系统上可以使用的共享内存的总量(以字节为单位)
/proc/sys/kernel/shmax 内核所允许的最大共享内存段的大小(以字节为单位)
/proc/sys/kernel/shmmni 用于整个系统共享内存段的最大数目
/proc/sys/kernel/sysrq 如果该文件指定的值为非零,则激活 System Request Key
/proc/sys/kernel/threads-max 内核所能使用的线程的最大数目
/proc/sys/net/core/message_burst 写新的警告消息所需的时间(以 1/10 秒为单位);在这个时间内所接收到的其它警告消息会被丢弃。这用于防止某些企图用消息“淹没”您系统的人所使用的拒绝服务攻击
/proc/sys/net/core/message_cost 存有与每个警告消息相关的成本值。该值越大,越有可能忽略警告消息
/proc/sys/net/core/netdev_max_backlog 在接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
/proc/sys/net/core/optmem_max 每个套接字所允许的最大缓冲区的大小
/proc/sys/net/core/rmem_default 接收套接字缓冲区大小的缺省值(以字节为单位)
/proc/sys/net/core/rmem_max 接收套接字缓冲区大小的最大值(以字节为单位)。
/proc/sys/net/core/wmem_default 发送套接字缓冲区大小的缺省值(以字节为单位)。
/proc/sys/net/core/wmem_max 发送套接字缓冲区大小的最大值(以字节为单位)
/proc/sys/net/ipv4/ip_forward ip转发是否生效
/proc/sys/net/ipv4/tcp_retrans_collapse 控制TCP双方窗口协商出现错误的时候的一些重传的行为。但是在老的2.6的核 (<2.6.18)里头,这个重传会导致kernel oops,kernel panic,所以如果出现有 tcp_retrans_*样子的kernel panic,可以把这个参数给设置成0
/proc/sys/vm/buffermem 控制用于缓冲区内存的整个系统内存的数量(以百分比表示)。它有三个值,通过把用空格相隔的一串数字写入该文件来设置这三个值。用于缓冲区的内存的最低百分比/如果发生所剩系统内存不多,而且系统内存正在减少这种情况,系统将试图维护缓冲区内存的数量/用于缓冲区的内存的最高百分比
/proc/sys/vm/freepages 控制系统如何应对各种级别的可用内存。它有三个值,通过把用空格相隔的一串数字写入该文件来设置这三个值。如果系统中可用页面的数目达到了最低限制,则只允许内核分配一些内存/如果系统中可用页面的数目低于这一限制,则内核将以较积极的方式启动交换,以释放内存,从而维持系统性能/内核将试图保持这个数量的系统内存可用。低于这个值将启动内核交换
/proc/sys/vm/kswapd 控制允许内核如何交换内存。它有三个值,通过把用空格相隔的一串数字写入该文件来设置这三个值:内核试图一次释放的最大页面数目。如果想增加内存交换过程中的带宽,则需要增加该值/内核在每次交换中试图释放页面的最少次数/内核在一次交换中所写页面的数目。这对系统性能影响最大。这个值越大,交换的数据越多,花在磁盘寻道上的时间越少。然而,这个值太大会因“淹没”请求队列而反过来影响系统性能
/proc/sys/vm/pagecache 该文件与/proc/sys/vm/buffermem 的工作内容一样,但它是针对文件的内存映射和一般高速缓存
/proc/sys/vm/dirty_background_ratio 记录当所有被更改页面总大小占工作内存超过某个限制时,pdflush 会开始写回工作,默认是10%
/proc/sys/vm/dirty_ratio 控制文件系统的文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。默认是40%
/proc/sys/vm/dirty_writeback_centisecs 记录pdflush进程把page cache里边的内容写入磁盘的时间周期,默认是5秒
/proc/sys/vm/dirty_expire_centisecs 控制一个更改过的页面经过多长时间后被认为是过期的、必须被写回的页面,默认是30秒
/proc/sys/vm/laptop_mode 是否使用笔记本模式,在kernel2.6之后支持