8192linux
① linux如何设置用户打开的文件数
具体操作,需要修改两处,并且需重新启动Linux服务器。
首先SSH登录服务器,执行ulimit -a查看当前限制。这一步是可选,主要是看下限制,心里有数。
第一处修改:
vim /etc/security/limits.conf
在文件尾部增加:
* soft nofile 65535
* hard nofile 65535
第二处修改
vim /etc/profile
在文件尾部增加:
ulimit -S 65535
ulimit -H 65535
ulimit -n 65535
ulimit -f 6553500
保存修改后,重启Linux服务器。重启完毕后,SSH登入服务器,执行ulimit -a查看系统限制。
补充:ulimit命令的参数详细介绍
-H 设置硬资源限制.
-S 设置软资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
-u <程序数目> 用户最多可开启的程序数目
② Realtek RTL8192E 无线网卡驱动 Linux版
Linux
中对新硬件的支持问题是件使人头痛的事情,因为很多芯片厂家对
Linux
系统用户还未曾重视,未能像支持对
Windows
系统一样在新硬件推出的同时便推出相应的
Linux
驱动,或根本就未曾考虑过他们的新产品对
Linux
系统的支持问题。
最近有几款新的笔记本非常畅销,也出现了有部分
Linux
系统对新硬件的支持问题,如近期推出的
MSI(微星)
U100
自带的无线网卡是
Realtek
RTL8187SE,笔记本附带的驱动光盘中只有
Windows
系统的相关驱动,部分Linux
系统的用户就无法使用该无线网卡。
在
msiwind.net
网站上有
Realtek
RTL8187SE
无线网卡的
deb
包驱动,为使用
Realtek
RTL8187SE
芯片的无线网卡用户解决了
Linux
驱动问题。deb
包是
Linux
下安装软件非常好的解决方案,你只需进入相关下载页面,下载对应你
Linux
系统内核版本的
RTL8187SE
网卡驱动
deb
包,只要你的系统支持
deb
安装(例如
Ubuntu
中就可以使用系统自带的
软件包安装程序)即可方便的安装。
msiwind.net
网站上关于
RTL8187SE
驱动
for
Ubuntu
8.04
和
8.10
(DEB
包)
页面地址:
http://forums.msiwind.net/debian/rtl8187se-drivers-for-ubuntu-and-deb-packages-t4954.html
(用
google
翻译后的页面)
该驱动作者的博客中有相关最新驱动,其页面地址是:
http://boskastrona.ovh.org/index_en.html
(用
google
翻译后的页面)
在
Ubuntu
9.04
及以后的版本中已经带有了
RTL8187SE
的无线网卡驱动,系统会自动识别你的无线网卡。最后为你推荐一款
Linux
下比较好的无线网络管理小程序,相关内容请参阅本站
Linux
下一个比较好的无线网络管理小程序
Wicd。
③ 一般优化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探测消息等。
④ linux要用什么用户安装was
一准备
1. 登录到系统,是否使用root用户都可以(推荐使用root用户安装,以减少安装复杂度)。检查umask设置:对root用户,推荐使用0022;对非root用户,推荐使用0002
2. 安装FireFox浏览器(一般缺省都会安装),用来在安装时运行Launchpad程序,以及在安装后,使用Gnome或者KDE中的为Linux WAS创建的快捷菜单
3. 如果以前在系统中安装过Linux WAS,要停止所有相关的java进程,以及IBM HTTP Server进程
4. 确保足够的硬盘空间。基本的安装(不包括HTTP Server)大概需要以下大小的硬盘空间:
/opt/IBM/WebSphere ~ 930M
/tmp ~ 100M
包含例子的WAS profile ~ 200M,一般也在/opt/IBM/WebSphere目录下
5. 增加ulimit值,以免在addNode和importWasprofile的时候出问题:在用户的bash登录脚本(~/.bashrc)的最后加入一行:ulimit -n 8192
6. 如果安装了带有cp命令的软件,要确保把这些软件的路径从PATH环境变量中去掉,以保证使用shell的cp命令。在安装完Linux WAS以后,再恢复PATH设置即可。
二 安装Linux WAS
1. 以root用户运行安装包根目录下的launchpad.sh命令启动Launchpad
2. 在打开的页面中,点击"Launch the installation wizard for Websphere Application Server",弹出Linux WAS安装向导欢迎界面
3. 在System Prerequisite Check页会有警告说 没有检测到支持的操作系统,点击Next忽略即可
4. 在WebSphere Application Server Environments页面,选择"Application Server"
5. 在Enable Administrative Security页面,取消选中(如果需要的话,可以在安装以后启用)
6. 安装结束后,点击Finish按钮,接着弹出First Steps Console
7. 可选步骤:点击Installation verification,验证安装,然后可以点击Administrative console,打开管理控制台页面(http://servername:9060/ibm/console)查看Linux WAS的相关配置信息。最后点击Stop the server,停止Linux WAS。
8. 可选: 安装补丁包将补丁包安装程序(UpdateInstaller)7.0.0.0-WS-UPDI-LinuxIA32.zip,解压缩,然后cd到解开的目录下面,以root运行java -jar setup.jar,缺省安装到/opt/IBM/WebSphere/UpdateaInstaller安装结束后,UpdateInstaller会自动运行,(手动将下载的补丁包,如7.0.0-WS-WAS-LinuxX32-FP0000005.pak放到/opt/IBM/WebSphere/UpdateaInstaller/maintenance下面),一路Next即可。
9. 如果启用了SELinux,需要更改Linux WAS相关的java命令程序以及相关链接库和jar包的security context, 不然在用startServer.sh启动Linux WAS的时候会碰到类似如下的错误信息 /opt/IBM/WebSphere/AppServer/bin/startServer.sh: line 145: /opt/IBM/WebSphere/AppServer/java/bin/java: Permission denied Linux WAS本身提供了现成的脚本(/opt/IBM/WebSphere/AppServer/properties/version/nif/config/script/relabel_was.sh)来自动完成这些修改。不过这个脚本是为RHEL 5量身定做的,会检查系统是不是RHEL5. 所以我们要做一下简单的修改,注释掉脚本最后的检查语句,如下所示:
view plain to clipboardprint?
#if [ -r /etc/redhat-release ]; then
# release=`cat /etc/redhat-release | awk '{print $7}'`
# version=${release%%\.*}
# if [ $version -ge 5 ]; then
if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
INSTALL_PATH=$1
JAVA_PATH=$INSTALL_PATH/java/jre
set_java_contexts
set_lib_contexts
fi
# fi
#fi
exit $rc
#if [ -r /etc/redhat-release ]; then
# release=`cat /etc/redhat-release | awk '{print $7}'`
# version=${release%%\.*}
#if [ $version -ge 5 ]; then
if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
INSTALL_PATH=$1
JAVA_PATH=$INSTALL_PATH/java/jre
set_java_contexts
set_lib_contexts
fi
#fi
#fi
exit $rc
把修改后的脚本存为relabel_was_fedora.sh,然后执行:
sudo setenforce 0
sudo ./relabel_was_fedora.sh /opt/IBM/WebSphere/AppServer/
sudo setenforce 1
10. 如果启用了防火墙,要打开Linux WAS相关的端口,比如9080,9060等
11. 运行sudo /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1 启动Linux WAS,检查一切是否正常。
⑤ linux 内核参数优化
一、Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现。
命令格式:
sysctl [-n] [-e] -w variable=value
sysctl [-n] [-e] -p (default /etc/sysctl.conf)
sysctl [-n] [-e] –a
常用参数的意义:
-w 临时改变某个指定参数的值,如
# sysctl -w net.ipv4.ip_forward=1
-a 显示所有的系统参数
-p从指定的文件加载系统参数,默认从/etc/sysctl.conf 文件中加载,如:
以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了
# service network restart
命令,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件,将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1
二、linux内核参数调整:linux 内核参数调整有两种方式
方法一:修改/proc下内核参数文件内容,不能使用编辑器来修改内核参数文件,理由是由于内核随时可能更改这些文件中的任意一个,另外,这些内核参数文件都是虚拟文件,实际中不存在,因此不能使用编辑器进行编辑,而是使用echo命令,然后从命令行将输出重定向至 /proc 下所选定的文件中。如:将 timeout_timewait 参数设置为30秒:
参数修改后立即生效,但是重启系统后,该参数又恢复成默认值。因此,想永久更改内核参数,需要修改/etc/sysctl.conf文件
方法二.修改/etc/sysctl.conf文件。检查sysctl.conf文件,如果已经包含需要修改的参数,则修改该参数的值,如果没有需要修改的参数,在sysctl.conf文件中添加参数。如:
net.ipv4.tcp_fin_timeout=30
保存退出后,可以重启机器使参数生效,如果想使参数马上生效,也可以执行如下命令:
三、sysctl.conf 文件中参数设置及说明
proc/sys/net/core/wmem_max
最大socket写buffer,可参考的优化值:873200
/proc/sys/net/core/rmem_max
最大socket读buffer,可参考的优化值:873200
/proc/sys/net/ipv4/tcp_wmem
TCP写buffer,可参考的优化值: 8192 436600 873200
/proc/sys/net/ipv4/tcp_rmem
TCP读buffer,可参考的优化值: 32768 436600 873200
/proc/sys/net/ipv4/tcp_mem
同样有3个值,意思是:
net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.
net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.
net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.
上述内存单位是页,而不是字节.可参考的优化值是:786432 1048576 1572864
/proc/sys/net/core/netdev_max_backlog
进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可调整到1000
/proc/sys/net/core/somaxconn
listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.可调整到256.
/proc/sys/net/core/optmem_max
socket buffer的最大初始化值,默认10K
/proc/sys/net/ipv4/tcp_max_syn_backlog
进入SYN包的最大请求队列.默认1024.对重负载服务器,可调整到2048
/proc/sys/net/ipv4/tcp_retries2
TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,尽早释放内核资源.
/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes
这3个参数与TCP KeepAlive有关.默认值是:
tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds
意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe 9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效.对服务器而言,显然上述值太大. 可调整到:
/proc/sys/net/ipv4/tcp_keepalive_time 1800
/proc/sys/net/ipv4/tcp_keepalive_intvl 30
/proc/sys/net/ipv4/tcp_keepalive_probes 3
/proc/sys/net/ipv4/ip_local_port_range
指定端口范围的一个配置,默认是32768 61000,已够大.
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 = 30
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192
表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000
表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为 180000,改为 5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
Linux上的NAT与iptables
谈起Linux上的NAT,大多数人会跟你提到iptables。原因是因为iptables是目前在linux上实现NAT的一个非常好的接口。它通过和内核级直接操作网络包,效率和稳定性都非常高。这里简单列举一些NAT相关的iptables实例命令,可能对于大多数实现有多帮助。
这里说明一下,为了节省篇幅,这里把准备工作的命令略去了,仅仅列出核心步骤命令,所以如果你单单执行这些没有实现功能的话,很可能由于准备工作没有做好。如果你对整个命令细节感兴趣的话,可以直接访问我的《如何让你的Linux网关更强大》系列文章,其中对于各个脚本有详细的说明和描述。
EXTERNAL="eth0"
INTERNAL="eth1"
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE
LOCAL_EX_IP=11.22.33.44 #设定网关的外网卡ip,对于多ip情况,参考《如何让你的Linux网关更强大》系列文章
LOCAL_IN_IP=192.168.1.1 #设定网关的内网卡ip
INTERNAL="eth1" #设定内网卡
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -t nat -A PREROUTING -d $LOCAL_EX_IP -p tcp --dport 80 -j DNAT --to 192.168.1.10
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to $LOCAL_IN_IP
iptables -A FORWARD -o $INTERNAL -d 192.168.1.10 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A OUTPUT -d $LOCAL_EX_IP -p tcp --dport 80 -j DNAT --to 192.168.1.10
获取系统中的NAT信息和诊断错误
了解/proc目录的意义
在Linux系统中,/proc是一个特殊的目录,proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它包含当前系统的一些参数(variables)和状态(status)情况。它以文件系统的方式为访问系统内核数据的操作提供接口
通过/proc可以了解到系统当前的一些重要信息,包括磁盘使用情况,内存使用状况,硬件信息,网络使用情况等等,很多系统监控工具(如HotSaNIC)都通过/proc目录获取系统数据。
另一方面通过直接操作/proc中的参数可以实现系统内核参数的调节,比如是否允许ip转发,syn-cookie是否打开,tcp超时时间等。
获得参数的方式:
第一种:cat /proc/xxx/xxx,如 cat /proc/sys/net/ipv4/conf/all/rp_filter
第二种:sysctl xxx.xxx.xxx,如 sysctl net.ipv4.conf.all.rp_filter
改变参数的方式:
第一种:echo value > /proc/xxx/xxx,如 echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
第二种:sysctl [-w] variable=value,如 sysctl [-w] net.ipv4.conf.all.rp_filter=1
以上设定系统参数的方式只对当前系统有效,重起系统就没了,想要保存下来,需要写入/etc/sysctl.conf文件中
通过执行 man 5 proc可以获得一些关于proc目录的介绍
查看系统中的NAT情况
和NAT相关的系统变量
/proc/slabinfo:内核缓存使用情况统计信息(Kernel slab allocator statistics)
/proc/sys/net/ipv4/ip_conntrack_max:系统支持的最大ipv4连接数,默认65536(事实上这也是理论最大值)
/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 已建立的tcp连接的超时时间,默认432000,也就是5天
和NAT相关的状态值
/proc/net/ip_conntrack:当前的前被跟踪的连接状况,nat翻译表就在这里体现(对于一个网关为主要功能的Linux主机,里面大部分信息是NAT翻译表)
/proc/sys/net/ipv4/ip_local_port_range:本地开放端口范围,这个范围同样会间接限制NAT表规模
cat /proc/sys/net/ipv4/ip_conntrack_max
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
cat /proc/net/ip_conntrack
cat /proc/sys/net/ipv4/ip_local_port_range
wc -l /proc/net/ip_conntrack
grep ip_conntrack /proc/slabinfo | grep -v expect | awk '{print 2;}'
grep ip_conntrack /proc/slabinfo | grep -v expect | awk '{print 3;}'
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 10
cat /proc/net/ip_conntrack | perl -pe s/^(.*?)src/src/g | cut -d ' ' -f1 | cut -d '=' -f2 | sort | uniq -c | sort -nr | head -n 10
⑥ Linux怎么移除系统自带的cdc_acm驱动
Linux下大部分驱动都是以模块方式加载到内核的,要删除一个驱动,主要从模块下手。所以首先要学会如何查看已经加载的模块:
lsmod
第一列是模块的名字,根据模块名字往往可以猜出哪个模块是要删除的驱动。如果对硬件不熟悉的话就要试着通过其他命令来找相关的信息。
比如要删除无线网卡的驱动,那么可以用:
lspci | grep less
lspci命令会列出所有PCI设备,而grep会找出返回结果中包含less的行。无线是Wireless,所以返回结果就会包含有我的无线网卡的信息,比如:
02:00.0 Network controller: Realtek Semiconctor Co., Ltd. RTL8192E Wireless LAN Controller (rev 01)
可以看出型号是RTL8192E,这个时候再用lsmod命令,查看有没有与8192相关的模块名就可以了。
找到模块名字后(比如无线网卡叫做r8192e_pci)就可以用如下命令卸载模块:
rmmod 模块名
对于无线网卡就是rmmod r8192e_pci。这时候驱动就已经成功被卸载了,但是是临时的,重启又会重新加载,如果要永久卸载这个驱动的话还需要改一点东西。
在Ubuntu下进入/etc/modprobe.d目录下(其他发行版会有些差别),编blacklist.conf文件,加入一行(一般加在最下面):
blacklist 模块名