分页: 10/20 第一页 上页 5 6 7 8 9 10 11 12 13 14 下页 最后页 [ 显示模式: 摘要 | 列表 ]
想解决缓存的性能问题,准备选用BerkeleyDB作为存储方式,但会有单个文件的问题。

BerkeleyDB的性能没有问题的,DB库非常紧凑,不超过500K,但可以管理大至256T的数据量。

操作系统能够达到多少的单个文件的,对于ext3系统,是根据格式化时选择的blocksize来决定的:

引用
Filesystem File Size Limit Filesystem Size Limit
ext2/ext3 with 1 KiB blocksize 16448 MiB (~ 16 GiB) 2048 GiB (= 2 TiB)
ext2/3 with 2 KiB blocksize 256 GiB 8192 GiB (= 8 TiB)
ext2/3 with 4 KiB blocksize 2048 GiB (= 2 TiB) 8192 GiB (= 8 TiB)
ext2/3 with 8 KiB blocksize (Systems with 8 KiB pages like Alpha only) 65568 GiB (~ 64 TiB) 32768 GiB (= 32 TiB)

参考:http://www.suse.de/~aj/linux_lfs.html

也就是说,ext3系统对应的单个文件限制为:
1k 16G
2k 256G
4k 2T

我们怎么知道现在的分区是多大的blocksize呢?
一般而言,格式化时会自动选择一个合适的文件大小的,硬盘大则会选4k,很小的则选择1k的。


在正常的硬盘(600G)上:
[root@aslibra ~]# dumpe2fs /dev/sda3
dumpe2fs 1.35 (28-Feb-2004)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          8b556c99-cbe6-48f2-bbfe-fea1969e2557
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal resize_inode filetype needs_recovery sparse_super large_file
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              87785472
Block count:              175546271
Reserved block count:     8777313
Free blocks:              37366602
Free inodes:              74134440
First block:              0
Block size:               4096

虚拟机上分配的硬盘(7G)比较小:
[root@aslibra /]# dumpe2fs /dev/sda1
....
Block size:               1024


也就是说,基本上单个文件可以用完整个硬盘,空间不用太担心。

有兴趣看更多的文件格式比较:
http://en.wikipedia.org/wiki/Comparison_of_file_systems
Tags: ,
linux的每个分区默认都有一个 lost+found 目录,是用来存放fsck过程中部分修复的文件的。

近日一块硬盘发生错误:

引用
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted


会提示硬盘有问题,估计硬盘快不行了咯 (⊙o⊙)
重启的时候还需要键盘按any key继续,这硬盘有问题啦,可怜的
在远程重启一直都没有启动好,原来真的是需要确认才能继续。。

在rw模式下操作,文件系统会在某个时候自动切换至read-only模式,不知道啥问题,出现IO错误多了就会这样?

umount后可以进行fsck:
如果没有umount,肯定是比较危险的事情,可能会导致现在被读取或者打开的文件都会丢到lost-found里面,到时候有你找的了,是不是这样我也不太肯定。
我胆敢尝试了一下在挂载为只读的时候fsck,发现lost-found里面的文件很多是samba共享的文件,不知道是否这个原因,但是要知道linux启动的时候也是挂载根分区为只读查盘的,而后在remount为rw。

翻开红帽系统管理的书找到依据,表明可以不umount而修复:
一个只读的挂载的文件系统可用fsck命令进行操作,并被修复。

Tags: , ,
今日群里问起一个问题:

echo 123|md5sum
ba1f2511fc30423bdbb183fe33f3dd0f  -

php -r "echo md5('123');"
202cb962ac59075b964b07152d234b70

两者的md5值不一致,于是有很多有趣的解法:

1 Mysql解法:

mysql> select md5('123');
+----------------------------------+
| md5('123')                       |
+----------------------------------+
| 202cb962ac59075b964b07152d234b70 |
+----------------------------------+


2 修正换行符法

[root@fetion ~]# printf 123|md5sum
202cb962ac59075b964b07152d234b70  -
[root@fetion ~]# echo -n 123|md5sum
202cb962ac59075b964b07152d234b70  -
[root@fetion ~]# echo 123|tr -d '\n'|md5sum
202cb962ac59075b964b07152d234b70  -


小结一下:

1 echo默认是带换行符做结尾的
2 echo -n 可以去掉换行符
3 printf是没有换行符结尾的
4 tr可以删掉一个字符,如 tr -d '\n'
5 php命令行执行一段程序是 php -r "code"
Tags: ,
一台机器新上却没法登录,但在机房局域网机器却可以登录,登录后无法ping到外网网络。

有几样可能:
1 网线没接好?局域网可以访问所以不会这样
2 Mac地址冲突?局域网可以访问也说明不会
3 指定的IP无效?此IP曾经访问正常,只是不知道为啥突然不行了,机房确认此IP能有效进入
4 路由问题?估计是这样,因为数据包进入此机器,但返回阶段却可能找不到网关而导致通信失败

在局域网可以访问其实说明了通信基本可以正常,那估计是网关设置问题,检查路由表:

[root@bogon ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.2.3.64  0.0.0.0         255.255.255.192 U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         192.168.1.1  0.0.0.0         UG    0      0        0 eth1


修改了IP的,但不妨碍说明问题。
路由表说明了什么样的IP使用哪个网卡,这个机器有两个网卡eth0和eth1

这个路由表很奇怪,默认应该发送到eth0的,网关也是用的eth0配置里的才对,不想居然有这样的情形,不知道是否机房安装系统的时候搞错了哪里了。

检查 eth0和eth1的配置,eth0里面有GATEWAY声明,但eth1里面没有GATEWAY声明,那怎么会出现这样的路由表呢?
删掉默认的那条,新添加一个:

route del default
route add default gw 1.2.3.65


这样就正常了,但重启后却恢复了之前的状态。
发现网络设置里面有这么一条网关声明:

[root@bogon ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.1.1


原来问题出现在这里,删掉GATEWAY这一行恢复正常。
Tags: , ,
网络监测会看的出有异常的访问,我们需要正常处理它,比如:

点击在新窗口中浏览此图片

此流量是属于异常流量,如果有必要的话,可以处理它,在防火墙上加规则即可。
监测方面,cacti也是比较方便的,容易发现整体的问题,但知道网络出问题了,怎么检查呢?

iftop检查网络流量

iftop工具是一个很方便知道现在流量都对应哪些ip。
iftop: display bandwidth usage on an interface

下载文件解压后 ./configure && make && make install 即可
如果碰到相应的支持库没有的情况,比如:

configure: error: can't find pcap.h
  You're not going to get very far without libpcap.


那你需要先安装libpcap,找到相应的rpm文件,比如:

引用
-rw-r--r-- 1 root root  108987 Apr  3 08:21 libpcap-0.9.4-8.1.i386.rpm
-rw-r--r-- 1 root root  119062 Apr  3 08:21 libpcap-devel-0.9.4-8.1.i386.rpm


你可以从你的系统盘找到,ivh方式安装如果有问题就试试Uvh吧
如果已经有高版本的libpcap,那也许你可以试试强制安装你的版本:

rpm -Uvh --force libpcap-0.9.4-8.1.i386.rpm
rpm -Uvh --force libpcap-devel-0.9.4-8.1.i386.rpm


yum方式安装其他类库

yum -y install tcpdump libpcap libpcap-devel ncurses ncurses-devel


iftop使用很简单,会列出当前流量大小排序的响应,形式类似top命令,详情见官网介绍,你找到该ip即可加入防火墙规则。

iptables的使用

iptables就不多介绍了,用它来处理此问题再好不过了。
《LINUX SERVER HACKS》里的一篇文章:从任意服务器的命令行创建防火墙,介绍了基本的防火墙使用脚本:

里面有英文注释,我做了部分汉化(后面不太懂描述)和调整:
1 检查黑白名单是否存在
2 先处理黑名单
3 配置文件放/etc

#!/bin/sh

WHITELIST=/etc/whitelist.txt
BLACKLIST=/etc/blacklist.txt
ALLOWED="22 25 80 88 8080 443"

# 清空规则

iptables -F

# 处理黑名单

if [ -f $BLACKLIST ] ;then
  for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
    echo "Blocking $x..."
    iptables -A INPUT -t filter -s $x -j DROP
  done
fi

# 处理白名单

if [ -f $WHITELIST ] ;then
  for x in `grep -v ^# $WHITELIST | awk '{print $1}'`; do
    echo "Permitting $x..."
    iptables -A INPUT -t filter -s $x -j ACCEPT
  done
fi

# 开发允许端口

for port in $ALLOWED; do
  echo "Accepting port $port..."
  iptables -A INPUT -t filter -p tcp --dport $port -j ACCEPT
done

#
# Finally, unless it's mentioned above, and it's an inbound startup request,
# just drop it.
#

iptables -A INPUT -t filter -p tcp --syn -j DROP


默认防火墙规则应该是都开放的,所以我们仅仅封IP的话,就可以把相应的ip放在黑名单里面即可,一行一个
这个文件就简单解决了

另外,防火墙如果没启动,那就启动后再运行此脚本,可以保存此规则为默认规则
比如redhat里面是 service iptables save
Tags: , ,
LINUX
# uname -a

Linux DELL2950 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686 i686
后面是 X686或X86_64则内核是64位的,i686或i386则内核是32位的

AIX:
显示AIX系统内核是32位还是64位:
bootinfo -K
显示机器硬件是32位还是64位:
bootinfo -y

SUN:
$isainfo -bv
64表示内核是64位的,32表示内核是32位的

HPUX:
>getconf KERNEL_BITS
64表示内核是64位的,32表示内核是32位的

另外的方法:
getconf LONG_BIT
Tags:
第一次接触到NIS服务是从《Redhat Enterprise Linux系统管理》上了解到的。
此服务是提供给局域网共用一些文件的,对于局域网管理来说,是个好东西。

大体是这样的意思:
主服务器共享用户数据、用户组数据、hosts设定等,其余服务器可以直接使用。

由此带来的好处是,你如果维护100台机器,那就不用独立维护这100台的用户数据了,可以使用一样的用户配置,然后hosts设定也可以在一台设定,其它都可以直接使用,这个也是一个很大的方便。

这里就不说具体的了,参考一下现成的资料即可配置:
鳥哥的 Linux 私房菜:《NIS 伺服器
简体版:《简易 NIS Server 架设
Tags: ,
分页: 10/20 第一页 上页 5 6 7 8 9 10 11 12 13 14 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐