严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,部分初学者也常看到DDR SDRAM,就认为是SDRAM。DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。
SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。
与SDRAM相比:DDR运用了更先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了DLL(Delay Locked Loop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。DDL本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRA的两倍。
从外形体积上DDR与SDRAM相比差别并不大,他们具有同样的尺寸和同样的针脚距离。但DDR为184针脚,比SDRAM多出了16个针脚,主要包含了新的控制、时钟、电源和接地等信号。DDR内存采用的是支持2.5V电压的SSTL2标准,而不是SDRAM使用的3.3V电压的LVTTL标准。
DDR2内存起始频率从DDR内存最高标准频率400Mhz开始,现已定义可以生产的频率支持到533Mhz到667Mhz,标准工作频率工作频率分别是200/266/333MHz,工作电压为1.8V。DDR2采用全新定义的240 PIN DIMM接口标准,完全不兼容于DDR的184PIN DIMM接口标准。
DDR2和DDR一样,采用了在时钟的上升延和下降延同时进行数据传输的基本方式,但是最大的区别在于,DDR2内存可进行4bit预读取。两倍于标准DDR内存的2BIT预读取,这就意味着,DDR2拥有两倍于DDR的预读系统命令数据的能力,因此,DDR2则简单的获得两倍于DDR的完整的数据传输能力。
内存DDR与之DDR2和DDR3的区别之参数不同之处,见下面表格 :
参数 |
DDR |
DDR2 |
DDR3 |
电压 VDD/VDDQ |
2.5V/2.5V |
1.8V/1.8V(±0.1) |
1.5V/1.5V(±0.075) |
I/O接口 |
SSTL_25 |
SSTL_18 |
SSTL_15 |
数据传输率(Mbps) |
200~400 |
400~800 |
800~2000 |
容量标准 |
64M~1G |
256M~4G |
512M~8G |
Memory Latency(ns) |
15~20 |
10~20 |
10~15 |
CL值 |
1.5/2/2.5/3 |
3/4/5/6 |
5/6/7/8 |
预取设计(Bit) |
2 |
4 |
8 |
逻辑Bank数量 |
2/4 |
4/8 |
8/16 |
突发长度 |
2/4/8 |
4/8 |
8 |
封装 |
TSOP |
FBGA |
FBGA |
引脚标准 |
184Pin |
240Pin |
240Pin |
上表为大家对比的是目前标准DDR2与DDR3内存参数对比,通过对比我们可以发现,在主频方面,DDR3内存是2000MHz明显高于DDR2的800MHz的主频,另外在时序方面DDR3内存也优秀于DDR2内存,还有一个方面就是功耗方面,DDR3工作电压为1.5v低于DDR2的工作电压,也就是说DDR3内存速度全面优秀于上一代DDR2内存,并且耗电更少。
DDR2内存技术最大的突破点其实不在于所谓的两倍于DDR的传输能力,而是,在采用更低发热量,更低功耗的情况下,反而获得更快的频率提升,突破标准DDR的400MHZ限制。
所以我们看到的目前的DDR3其实它相对来说我觉得叫DDR2pro或是DDR2+应该更为贴切。
因为它其实是DDR2的延伸..只是提升了频率降低了能耗而已,实际的技术并没有特别的变化。
大家都知道,在linux发行版本中,如需添加随系统启动而自动运行的服务,只需在/etc/rc.local 脚本文件中添加即可,
但如果其运行的命令或程序不带路径,如下
#!/bin/bash
distccd –user nobody –allow 10.10.98.0/24 –log-file=/var/log/distcc.log –verbose –daemon
loadavg -s 10.10.98.20 >/dev/null 2>&1
注:distccd、loadavg命令存放在/usr/local/bin/目录下
在系统执行这些命令时将报错,无法正常执行!究其原因: 由于在执行rc.local脚本时,PATH环境变量未全部初始化,目录/usr/local/bin/ 需在执行/etc/profile 后才被添加到环境变量PATH中。
故,在 /etc/rc.local 执行 /usr/local/bin/ 目录中的命令需要使用绝对路径。
解决方法:
找到php.ini搜索这3个地方 upload_max_filesize , memory_limit 和 post_max_size
将他们后面的值修改成大于你需要导入的数据库大小就好了。
然后重启的PHP环境.
在linux下,路径是区分大小写的,今天我们来把它改成不区分大小写的方法吧,有需要的朋友可以参考一下。
inux是区分大小写,下面是让aparch不区分路径的大小写
http.conf
加载mod_speling模块: LoadModule speling_module /usr/lib/apache2/modules/mod_speling.so
开启模块: CheckSpelling on
重启apache
这样改一下就正常了
rsync命令
#rsync -av –progress /mnt/vps12com2/full20100526.tar.gz /mnt/vps12com1/
[以上命令] 可以实现本机带进度条提示拷贝,可以实现不同机器带进度条提示拷贝,可以拷贝多个文件
scp命令
#scp -v /mnt/vps12com2/full20100526.tar.gz /mnt/vps12com1/
[以上命令] 本机拷贝无法显示进度
#scp -v /mnt/vps12com2/full20100526.tar.gz root@192.168.1.1:/mnt/vps12com1/
[以上命令] 不同机器拷贝可以显示进度条,即使不带“-v”参数也可以显示进度条
#scp -v /mnt/vps12com2/full20100526.tar.gz root@127.0.0.1:/mnt/vps12com1/
[以上命令] 变相实现本机带进度条提示拷贝,可以不带“-v”参数
cp命令
没有找到带进度条提示拷贝,有知道的朋友请分享,谢谢。
关于rsync, scp, cp拷贝速度
我做了一个简单的测试,拷贝一个240M的文件,仅供参考
#cp full20100526.tar.gz full20100526.tar.gz.bak
速度很快
#rsync -av –progress full20100526.tar.gz full20100526.tar.gz.bak
速度比较快(113.10MB/s)
#scp -v full20100526.tar.gz root@127.0.0.1:/root/full20100526.tar.gz
速度有些慢(26.9MB/s)
确认cp拷贝速度的方法
#cp full20100526.tar.gz full20100526.tar.gz.bak1 && full20100526.tar.gz.bak1 full20100526.tar.gz.bak2
#stat full20100526.tar.gz.bak1
Access: 2010-06-11 11:02:01.000000000 +0800
Modify: 2010-06-11 11:01:58.000000000 +0800
Change: 2010-06-11 11:01:58.000000000 +0800
#stat full20100526.tar.gz.bak2
Access: 2010-06-11 11:01:58.000000000 +0800
Modify: 2010-06-11 11:02:01.000000000 +0800
Change: 2010-06-11 11:02:01.000000000 +0800
有一次在centos上用RPM命令装gcc时,遇到了下面的问题,错误提示:
rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages database in /var/lib/rpm
经多方查阅,并尝试各种办法之后发现,这是因为rpm的数据库被损坏了,解决的办法就是重建数据库。在重建之前,你需要先删掉以前rpm数据库的相关内容,即/var/lib/rpm目录下的__db.*的几个文件,若有一个*.back文件,也需要删除。主要是以下的两条命令完成删除和重建:
rm -rf /var/lib/rpm/__db*
rpm -rebuilddb
如果在第二条命令执行时,又提示你“空间不够”时,这时你可以删除/var/log目录下的所有文件,然后再次执行上述的第二条命令就可以了。 想了下之前好像打了个很大的tar包。估计是空间满了。应该就是出现这个原因。清空一下空间
IIS6.0
1.打开IIS添加Mime项
关联扩展名: *.json
内容类型(MIME):application/x-JavaScript
2.添加映射:
位置在IIS对应站点右键属性:”主目录”-”应用程序设置”-”配置”-”映射”-”添加”,会打开”添加/编辑应用程序扩展名映射”
扩展名: .json
运行文件:C:\WINDOWS\system32\inetsrv\asp.dll
动作:GET,POST
IIS7.x IIS8
1、在“MIME类型”中“添加”一个文件扩展名为“.json”,MIME类型为text/json(也可以是application/x-javascript)
2、然后再在“处理程序映射”中“添加脚本映射”,请求路径为:*.json,可执行文件为C:/Windows/System32/inetsrv/asp.dll。
如果没找到asp.dll,到控制面板–>程序–>打开和关闭Windows功能—>InterNet信息服务—>万维网服务–>应用程序开发功能,打开“ASP支持”。当即打开,就可以找到asp.dll文件。
内容类型(MIME):text/json
然后我们通过浏览器访问:http://localhost/xxx.json,应该就可以显示json数据了,如果出现下载提示,检查以上步骤是否出现拼写错误,如果没有,重启计算机,应该就可以了。
补充:
小编随后翻阅了一些资料,发现在2006年json已经注册过MIME类型为application/json
所以以上MIME类型,大家都改为application/json
附上资料:
RFC 4627 “The application/json Media Type for JavaScript Object Notation (JSON)” 于2006年7月将 JSON 注册为一个 MIME 类型:application/json 。
参见:
ECMA-404 The JSON Data Interchange Format
RFC 4627 – The application/json Media Type for JavaScript Object Notation (JSON)
JSON: http://json.org/json-zh.html
MIME: http://www.iana.org/assignments/media-types/media-types.xhtml
application/json: http://www.iana.org/assignments/media-types/application/json
今天发现vps敲入crontab -e 居然提示 “Disk quota exceeded” 无法编辑。于是”df -h”查了查发现系统磁盘空间使用100%了。最后定位到是/var/spool/mail/root 这个文件有几个G。于是清理掉,问题解决。如果不知道是哪些文件占了磁盘空间,可以看下面查找大文件方法。
以下内容转自 http://hi.baidu.com/11haiou/item/f3a4878b601e084e840fab17
linux操作系统中,经常会遇到磁盘空间满的问题。遇到这样的问题,先查下是什么文件过大或过多引起的,至于引起这个更深一层的原因,先不探讨。怎么查看大文件所在的路径,linux中有一个命令,叫du,
先贴命令:du -m –max-depth=1或du -h –max-depth=1du:用于统计linux中文件或目录所占磁盘空间的大小du参数######-
m:以M为单位展示查询结果
-h:以K、M、G为单位展示查询结果,提高信息可读性
–max-depth=1:其中,数字“1”是指查询结果中最多显示的目录层数,这里指最多显示一层目录。
然后,利用此命令,逐层(目录)深入,这样就一定会查询到大文件所在目录,但也有可能是目录中文件过多所致。当找到大文件后,若因某些原因,不想对文件进行删除,可以用echo或cat或clear命令清除文件内容:
echo > /var/log/big.log此命令会把/var/log目录中的big.log文件内容清除,而又不删除big.log文件
cat > /var/log/big.log此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束
clear > /var/log/big.log此命令会把big.log文件内容清空,而不删除文件
==========================================================
另一种情况: 也可能是inode用完了.
用# df -i 可以查看。
真的是inode用完了,磁盘没法再写入新的内容了,这个是某些临时的小文件太多了,把inode用完了,把它删掉就行了。
# find /var/spool/clientmqueue -type f -print -exec rm -f {} \;
这个命令中 /var/spool/clientmqueue 是要删除的文件所在的目录 -type f这个参数限定find只查找普通文件(即不是管道文件,不是块文件,不是链接文件,不是目录等),防止误删除系统文件。
原因分析:系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;
Centos 内存占满 释放内存
大家经常使用centos系统是不是感觉经常使用top看到内存在使用一段时间后会越来越大,我也一样,今天用 free -m 查看,发现内存跑满了。
top后按下shift+m,就是按内存占用百分比排序的程序,发现排在第一的进程,才占用0.9%,那是什么占用的呢?谷歌了一下,据说是centos为了提高效率,把部分使用过的文件缓存到了内存里。如果是这样的话,我又不需要这样的文件性能,那就可以释放。如下两个命令就可以:
1
2
| sync
echo 3 > /proc/sys/vm/drop_caches |
linux服务器,我们一般是通过ssh通道远程管理,这就需要我们开启ssh端口,如22。但开启端口有被暴力破解的风险,你会说可以设置复杂的密码或使用证书避免。就算破解不了密码,但openssh也可能会有漏洞,你会说可以更改ssh端口,但还是有可能被扫描出来。还有一种选择,我们可以只允许指定IP访问ssh,通过vpn登录管理服务器,但局限很明显,万一紧急情况vpn登录不上去了怎么办。(有条件的我们可以多设置几个指定ip访问,保险些。也推荐大家用这个方法,对我们做数据中心服务器提供商多设置几个ip允许访问当然没有什么问题,因为资源多。)资源少的可以有其他办法吗?答案是肯定的。
下面给出一种个人觉得比较满意的解决方案,即使用iptables的recent模块,通过密令临时开启ssh端口。当然,密令需要保管好,防止外泄。(其实这种办法个人来讲,并不是非常推荐。因为人长时间不连服务器容易健忘密令。哈)
1、iptables规则设定
1
2
3
4
| #指定78字节的icmp数据包(包含IP头部20字节,ICMP头部8字节)通过被加入openssh列表。
iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT
#检查openssh列表是否存在你的来源IP,如果存在,即从第一次使用密令开始15秒钟内开启ssh端口22,超过15秒端口自动关闭,不再允许新连接,已连接的不会断开。
iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT |
2、临时开启ssh端口密令
1
2
| linux下:ping -s 50 host
windows下:ping -l 50 host |
3、示例一个目前服务器上使用的iptables规则
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 123 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 50 -m recent --set --name sshopen --rsource -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT |