分页: 16/196 第一页 上页 11 12 13 14 15 16 17 18 19 20 下页 最后页 [ 显示模式: 摘要 | 列表 ]
Jul 13
      今天碰到一个问题,NFS4.1的客户端在挂在服务器后,挂载目录下的文件及目录的uid和gid都变为4294967294,这应该是相当于-1的数。搜索了一下找到了几种解决的办法。

    解决方法:安装pnfs-nfs-utils,据说有很多依赖的包要装,没有尝试,有兴趣的可以去试试是否可行。


     网上有其他的解决办法:如

    You need to change the /etc/default/nfs-common file (on both your server and client):

      setNEED_IDMAPD to yes.

      sometimes set client is ok.

       不过在Cent OS 6.2的系统下没有找到这个文件,就不继续深究了。

     有一种最简单的解决办法就是在NFS的客户端启动rpcidmapd服务,然后你再看挂载的目录用户和组都是对的了,前提是你挂载的那个磁盘目录所属的用户和组,客户端也有。
Tags: ,
Jul 6
   之前用centos 6.2做系统的时候没有发现网卡会变成em1,可能不是在服务器上装的,而且今天特意拿来一台台式机安装centos 6.2 系统,网卡接口依然是之前的eth0,但是在DELL服务器上安装同样的centos 6.2系统,网卡的接口却变成了em1-em4了,其实本来这也没有什么,只是一个网卡接口的名称而已,一般来说没有什么影响。

   由于我们要使用LVS,环境配置完成后发现执行ipvsadm -ln,没有一台主机在线,连本机local都不在列表里
[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.9.9:80 wrr persistent 3600
于是立即去拿网卡接口是eth0-eth3的服务器做测试,发现配置之后一切正常,两台机器除了网卡接口名称不一样之外其他的都一样,就想去试试把centos 6.2 网卡是em1-em4的服务器网卡接口给改回去看看,至于这个是不是ipvsadm的bug还不确定,现在也没有时间去考证这些东西,以后再研究,谷歌了一下找到了一些资料,感兴趣的可以去看看: http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming,下面就开始操作啦:

第一步:修改系统grub
vi /boot/grub/grub.conf
增加一个 biosdevname=0 的启动参数,我修改的结果如下:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-220.17.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.17.1.el6.x86_64 ro root=UUID=41d8fd59-98cb-44fa-9cfb-065c104feaf0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarc
yrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM biosdevname=0
        initrd /initramfs-2.6.32-220.17.1.el6.x86_64.img
title CentOS (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=41d8fd59-98cb-44fa-9cfb-065c104feaf0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb
-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM biosdevname=0
        initrd /initramfs-2.6.32-220.el6.x86_64.img
添加的参数只有红色字体的那一段,然后保存文件

第二步:删除udev的配置文件rm -f /etc/udev/rules.d/70-persistent-net.rules

第三步:修改当前网卡配置文件的名称
mv ifcfg-em1 ifcfg-eth0
mv ifcfg-em2 ifcfg-eth1
mv ifcfg-em3 ifcfg-eth2
mv ifcfg-em4 ifcfg-eth3

第四步:修改网卡配置文件内容,把em1全部修改改为eth0
修改之前:
DEVICE="em1"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=D4:AE:52:6A:8F:76
TYPE=Ethernet
BOOTPROTO=none
IPADDR=114.X.X.X
GATEWAY=114.X.X.X
NETMAKS=255.255.255.224
DNS1=202.106.0.20
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
修改之后:
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=D4:AE:52:6A:8F:76
TYPE=Ethernet
BOOTPROTO=none
IPADDR=114.X.X.X
GATEWAY=114.X.X.X
NETMAKS=255.255.255.224
DNS1=202.106.0.20
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
可以使用 perl -p -i -e 's/em1/eth0/g' ifcfg-eth0 或sed -i 's/em1/eth0/g' ifcfg-eth0 进行替换。
最后一步:重新启动系统 init 6 启动之后你就发现熟悉的eth0-eth4已经回来啦,顺便说下centos 6.2 还有一个问题就是如果你没有在网卡配置文件里写dns的话,重启之后你就会发现 /etc/resolv.conf 文件被清空了,一个方法就是在网卡配置文件中写DNS,另一个方法就是给/etc/resolv.conf加i属性,chattr +i /etc/resolv.conf
Jul 5

RHEL/CentOS 6.x的系统服务比5.x系列的要多了很多新面孔,估计很多童鞋不甚理解,网上这方面资料也很少。理解这个对运维人员是必要的,因为开启不必要的服务越多,系统就相对越不安全。不需开启的服务尽量关闭。本人结合自己的应用经验做一些讲解说明,有不同理解的童鞋欢迎交流。

下面列表是在RHEL/CentOS 6.x最小化桌面环境安装下显示出来的系统服务,其中红色字体标注的是用官方的minimal ISO最小化安装系统后的服务列表。

服务名称功能    
 默认     
  
  建议     
备注说明
NetworkManager用于自动连接网络,常用在Laptop上开启关闭对服务器无用
abrt-ccpp 开启自定对服务器无用
abrt-oops 开启自定对服务器无用
abrtd 开启自定对服务器无用
acpid电源的开关等检测管理,常用在Laptop上开启自定对服务器无用
atd在指定时间执行命令开启关闭如果用crond,则可关闭它
auditd审核守护进程开启开启如果用selinux,需要开启它
autofs文件系统自动加载和卸载开启自定只在需要时开启它,可以关闭
avahi-daemon本地网络服务查找开启关闭对服务器无用
bluetooth蓝牙无线通讯开启关闭对服务器无用
certmonger 关闭关闭 
cpuspeed调节cpu速度用来省电,常用在Laptop上开启关闭对服务器无用
crond计划任务管理开启开启常用,开启
cups通用unix打印服务开启关闭对服务器无用
dnsmasqdns cache关闭关闭DNS缓存服务,无用
firstboot系统安装后初始设定关闭关闭 
haldaemon硬件信息收集服务开启开启 
ip6tablesipv6防火墙开启关闭用到ipv6网络的就用,一般关闭
iptablesipv4防火墙开启开启ipv4防火墙服务
irqbalancecpu负载均衡开启自定多核cup需要
kdump硬件变动检测关闭关闭服务器无用
lvm2-monitorlvm监视开启自定如果使用LVM逻辑卷管理就开启
matahari-broker 关闭关闭此服务不清楚,我关闭
matahari-host 关闭关闭此服务不清楚,我关闭
matahari-network 关闭关闭此服务不清楚,我关闭
matahari-service 关闭关闭此服务不清楚,我关闭
matahari-sysconfig
关闭关闭此服务不清楚,我关闭
mdmonitor软raid监视开启自定 
messagebus负责在各个系统进程之间传递消息开启开启如停用,haldaemon启动会失败
netconsole 关闭关闭 
netfs系统启动时自动挂载网络文件系统开启关闭如果使用nfs服务,就开启
network系统启动时激活所有网络接口开启开启网络基础服务,必需!
nfs网络文件系统关闭关闭nfs文件服务,用到就开启
nfslocknfs相关开启关闭nfs相关服务,用到就开启
ntpd自动对时工具关闭自定网络对时服务,用到就开启
ntpdate自动对时工具关闭关闭 
oddjobd与D-BUS相关关闭关闭 
portreserveRPC 服务相关开启自定可以关闭
postfix替代sendmail的邮件服务器开启自定如果无邮件服务,可关闭
psacct负荷检测关闭关闭可以关闭
qpidd消息通信开启开启 
quota_nld 关闭关闭可以关闭
rdisc自动检测路由器关闭关闭 
restorecondselinux相关关闭关闭如果开启了selinux,就需开启
rpcbind 开启开启关键的基础服务,nfs服务和桌面环境都依赖此服务!相当于CentOS 5.x里面的portmap服务。
rpcgssdNFS相关开启关闭NFS相关服务,可选
rpcidmapdRPC name to UID/GID mapper开启关闭NFS相关服务,可选
rpcsvcgssdNFS相关关闭关闭NFS相关服务,可选
rsyslog提供系统的登录档案记录开启开启系统日志关键服务,必需!
saslauthdsasl认证服务相关关闭关闭 
smartd硬盘自动检测守护进程关闭关闭 
spice-vdagentd 开启开启 
sshdssh服务端,可提供安全的shell登录开启开启SSH远程登录服务,必需!
sssd 关闭关闭 
sysstat 开启开启一组系统监控工具的服务,常用
udev-post设备管理系统开启开启 
wdaemon 关闭关闭 
wpa_supplicant无线认证相关关闭关闭 
ypbindnetwork information service客户端关闭关闭 

系统服务管理工具:

chkconfig(所有linux发行版都有),用法很简单,如下:

chkconfig --list [name]          chkconfig --add           chkconfig --del           chkconfig [--level ]   

ntsysv(Redhat系发行版特有),直接运行选择服务是否自启动。

3、查看系统服务的相关说明:

在RHEL/CentOS下这些系统服务都是Shell脚本,我们可以使用rpm的命令参数来查看相应服务的说明。如想查看mysqld服务的说明:

rpm -qi $(rpm -qf /etc/init.d/mysqld) 

如图所示:

Tags: , , ,
Jul 5
  limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。

    limits.conf的格式如下:

username|@groupname type resource limit
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

  type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。用 - 就表明同时设置了 soft 和 hard 的值。

resource:

  core - 限制内核文件的大小

  date - 最大数据大小

  fsize - 最大文件大小

  memlock - 最大锁定内存地址空间

  nofile - 打开文件的最大数目

  rss - 最大持久设置大小

  stack - 最大栈大小

  cpu - 以分钟为单位的最多 CPU 时间

  noproc - 进程的最大数目

  as - 地址空间限制

  maxlogins - 此用户允许登录的最大数目

  要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:

  session required /lib/security/pam_limits.so

  按下面说的,可以用ulimit -n 32768设置最大描述符,不过只对当前会话有用,而且要root,这个不好办,或者修改/etc/security/limits.conf,但要重启

  另外,没查到linux究竟最大描述符有没有限制,其他几个限制要不要改

http://www.nsfocus.net/index.php?act=magazine&do=view&mid=134

      如何限制和监视用户

  PAM 大多数的LINUX都内建了PAM支持。PAM的一个功能是系统环境设置,例如设置某个用户允许使用的系统内存大小等。在Red Hat和Caldera这两个发行版本的 /etc/security/ 目录下包含了许多可配置文件。最有趣的当属 /etc/security/limits.conf 文件,它允许你定义用户或用户组规则,规则是“软(soft)”或“硬(hard)”,规则的内容(如CPU、内存、最大文件大小等)。例如:

*    hard    core    0

bob    soft    nproc    100

bob    hard    nproc    150

  第一行规则禁止所有人产生core文件,第二行规则(软)定义用户bob的最大进程数为100,第三行规则(硬)定义用户bob的最大进程数为150。可以超出软规则的限制(警告),但不能超过硬规则的限制。你可以想像得到,这些规则定义到所有用户的登录SHELL和FTP等服务时是很有帮助的。

Bash

  Bash内建了一个限制器"ulimit"。注意任何硬限制都不能设置得太高,因此如果你在/etc/profile或用户的 .bash_profile (用户不能编辑或删除这些文件)中定义了限制规则,你就能对用户的Bash shell实施限制。这对于缺少PAM支持的LINUX旧发行版本是很有用的。你还必须确保用户不能改变他们的登录shell。限制的设置与PAM相似。例如:

ulimit –Sc 0
ulimit –Su 100
ulimit –Hu 150

http://www.ringkee.com/jims/read_folder/books/LinuxHackingExposed

      Ulimit命令

    设置限制

    可以把命令加到profile文件里,也可以在/etc/security/limits.conf文件中定义限制。

命令参数:

  -a      显示所有限制
  -c      core文件大小的上限
  -d      进程数据段大小的上限
  -f      shell所能创建的文件大小的上限
  -m     驻留内存大小的上限
  -s      堆栈大小的上限
  -t      每秒可占用的CPU时间上限
  -p     管道大小
  -n     打开文件数的上限
  -u     进程数的上限
  -v     虚拟内存的上限

    除可用Ulimit命令设置外,也可以在/etc/security/limits.conf文件中定义限制。

domino type item value

  domino是以符号@开头的用户名或组名,*表示所有用户,type设置为hard or soft。item指定想限制的资源。如cpu,core nproc or maxlogins。value是相应的限制值。

http://tech.blogchina.com/123/2005-06-10/372941.html

Unix、Linux下常用监控和管理命令工具

    检查编写的程序打开的文件数。   

  sysctl:显示(或设置)系统内核参数   

  sysctl -a 显示所有内核参数  

  sysctl -w 参数名=参数值   

  例如:sysctl -w fs.file-max=10240 设置系统允许同时打开的最大文件数为10240。   

  内核参数fs.file-nr包括三个参数值,第一个参数表示系统中曾经同时打开过的文件数峰值,  
  第二个参数表示空闲(分配后已释放)的文件数,
  第三个参数表示可以打开的最大文件数,其值等于fs.file-max。  

  当前打开的文件数 = 第一个参数值 - 第二个参数值   

  例如:   

  fs.file-nr = 977 223 10240   

  当前打开的文件数 = 977 - 233 = 744   

  设置内核参数时务必小心,如果设置不当会导致系统异常,甚至当机。  

  ulimit:显示(或设置)用户可以使用的资源限制   

  ulimit -a 显示用户可以使用的资源限制   

  ulimit unlimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)   

  和可同时运行的最大进程数(max user processes)无效  

  ulimit -n <可以同时打开的文件数> 设置用户可以同时打开的最大文件数(max open files)

  例如:ulimit -n 8192   

  如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误   

  ulimit -u <可以运行的最大并发进程数> 设置用户可以同时运行的最大进程数(max user processes)   

  例如:ulimit -u 1024 

http://www-128.ibm.com/developerworks/cn/linux/es-JavaVirtualMachinePerformance.html?ca=dwcn-newsletter-linux

IBM JVM for Linux on POWER 的性能调优技巧

用户限制设置

为了获得最佳性能,让运行 JVM 进程的用户拥有经过正确配置的用户设置是很重要的。这些参数可以设置成以下两种形式之一:

暂时地,适用于通过 ulimit 命令登录 shell 会话期间。

永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或者通过编辑 /etc/security/limits.conf。

建议设置成无限制(unlimited)的一些重要设置是:
数据段长度:ulimit –d unlimited
最大内存大小:ulimit –m unlimited
堆栈大小:ulimit –s unlimited
CPU 时间:ulimit –t unlimited
虚拟内存:ulimit –v unlimited

对于需要做许多套接字连接并使它们处于打开状态的 Java 应用程序而言,最好通过使用 ulimit –n,或者通过设置
/etc/security/limits.conf 中的 nofile 参数,为用户把文件描述符的数量设置得比默认值高一些。

提高 Oracle 用户的 shell 限制

/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login
session required /lib/security/pam_limits.so
/etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Jul 5
因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时:

root@localhost : test 12:55:50> SHOW global VARIABLES LIKE “%timeout%”;
+—————————-+——–+
| Variable_name | VALUE |
+—————————-+——–+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 120 |
| innodb_rollback_on_timeout | ON |
| interactive_timeout | 172800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 | # 这个参数已经没用了
| wait_timeout | 172800 |
+—————————-+——–+

我们一个个来看
connect_timeout

手册描述:
The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake. The default value is 10 seconds as of MySQL 5.1.23 and 5 seconds before that.
Increasing the connect_timeout value might help if clients frequently encounter errors of the form Lost connection to MySQL server at ‘XXX’, system error: errno.
解释:在获取链接时,等待握手的超时时间,只在登录时有效,登录成功这个参数就不管事了。主要是为了防止网络不佳时应用重连导致连接数涨太快,一般默认即可。

delayed_insert_timeout

手册描述:
How many seconds an INSERT DELAYED handler thread should wait for INSERT statements before terminating.
解释:这是为MyISAM INSERT DELAY设计的超时参数,在INSERT DELAY中止前等待INSERT语句的时间。

innodb_lock_wait_timeout

手册描述:
The timeout in seconds an InnoDB transaction may wait for a row lock before giving up. The default value is 50 seconds. A transaction that tries to access a row that is locked by another InnoDB transaction will hang for at most this many seconds before issuing the following error:

ERROR 1205 (HY000): LOCK wait timeout exceeded; try restarting TRANSACTION

When a lock wait timeout occurs, the current statement is not executed. The current transaction is not rolled back. (To have the entire transaction roll back, start the server with the –innodb_rollback_on_timeout option, available as of MySQL 5.1.15. See also Section 13.6.12, “InnoDB Error Handling”.)
innodb_lock_wait_timeout applies to InnoDB row locks only. A MySQL table lock does not happen inside InnoDB and this timeout does not apply to waits for table locks.
InnoDB does detect transaction deadlocks in its own lock table immediately and rolls back one transaction. The lock wait timeout value does not apply to such a wait.
For the built-in InnoDB, this variable can be set only at server startup. For InnoDB Plugin, it can be set at startup or changed at runtime, and has both global and session values.
解释:描述很长,简而言之,就是事务遇到锁等待时的Query超时时间。跟死锁不一样,InnoDB一旦检测到死锁立刻就会回滚代价小的那个事务,锁等待是没有死锁的情况下一个事务持有另一个事务需要的锁资源,被回滚的肯定是请求锁的那个Query。

innodb_rollback_on_timeout

手册描述:
In MySQL 5.1, InnoDB rolls back only the last statement on a transaction timeout by default. If –innodb_rollback_on_timeout is specified, a transaction timeout causes InnoDB to abort and roll back the entire transaction (the same behavior as in MySQL 4.1). This variable was added in MySQL 5.1.15.
解释:这个参数关闭或不存在的话遇到超时只回滚事务最后一个Query,打开的话事务遇到超时就回滚整个事务。

interactive_timeout/wait_timeout

手册描述:
The number of seconds the server waits for activity on an interactive connection before closing it. An interactive client is defined as a client that uses the CLIENT_INTERACTIVE option to mysql_real_connect(). See also
解释:一个持续SLEEP状态的线程多久被关闭。线程每次被使用都会被唤醒为acrivity状态,执行完Query后成为interactive状态,重新开始计时。wait_timeout不同在于只作用于TCP/IP和Socket链接的线程,意义是一样的。

net_read_timeout / net_write_timeout

手册描述:
The number of seconds to wait for more data from a connection before aborting the read. Before MySQL 5.1.41, this timeout applies only to TCP/IP connections, not to connections made through Unix socket files, named pipes, or shared memory. When the server is reading from the client, net_read_timeout is the timeout value controlling when to abort. When the server is writing to the client, net_write_timeout is the timeout value controlling when to abort. See also slave_net_timeout.
On Linux, the NO_ALARM build flag affects timeout behavior as indicated in the description of the net_retry_count system variable.
解释:这个参数只对TCP/IP链接有效,分别是数据库等待接收客户端发送网络包和发送网络包给客户端的超时时间,这是在Activity状态下的线程才有效的参数

slave_net_timeout

手册描述:
The number of seconds to wait for more data from the master before the slave considers the connection broken, aborts the read, and tries to reconnect. The first retry occurs immediately after the timeout. The interval between retries is controlled by the MASTER_CONNECT_RETRY option for the CHANGE MASTER TO statement or –master-connect-retry option, and the number of reconnection attempts is limited by the –master-retry-count option. The default is 3600 seconds (one hour).
解释:这是Slave判断主机是否挂掉的超时设置,在设定时间内依然没有获取到Master的回应就人为Master挂掉了
Tags: ,
分页: 16/196 第一页 上页 11 12 13 14 15 16 17 18 19 20 下页 最后页 [ 显示模式: 摘要 | 列表 ]