Web : Server, DB , PHP , JSP , Design etc.
12/03 18


11/12 29
查看ubuntu的资源占用的命令为$: top
top命令可以查看内存,cpu和进程

top:
主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出to
显示参数:
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

top命令
空格:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。


free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。

uptime
18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。


vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70

1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。

2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy:系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。

iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
avg-cpu: %user %nice %sys %iowait %idle
20.25 0.18 2.61 76.39 0.57
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hda 9.86 284.34 84.48 685407 2036
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。
Tags:
11/09 17
前几天酷壳发布过“vim简明攻略”,不知道大家练得怎么样了。如果你练了一下,那么这里这个速查卡就会对你有帮助了。以前本站也有过一个(vim速查卡),不过其太简单了。我觉得这个很不错,很全,很直观。这个速查卡来自这里。其用颜色标注了级别:

  Green   = 存活级
  Yellow   = 感觉良好
  Orange   / Blue = 高级
  Red   = 专家级
下面的图片点击可以看大图:

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

给程序员的VIM速查卡(点击看大图)

你还可以下载PDF版的和[url=Excel版的,如果你是色盲的话,还有蓝色版PDF的。如果你不是很喜欢的话,这里还有几个:


http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
http://tnerual.eriogerg.free.fr/vim.html
http://www.lagmonster.org/docs/vi.html
http://jrmiii.com/2009/03/06/learning-vim-the-pragmatic-way.html
Tags:
11/09 8
使用server版本。默认情况下ubuntu不自动挂载u盘。

用 fdisk -l 看一下确定设备名和文件系统类型。

为挂载做准备,创建一个目录:

mkdir /media/usb

使用mount挂载设备:

mount -t vfat /dev/sdb /media/usb

mount -t ntfs-3g /dev/sdb /media/usb

这时u盘已经挂载,可以访问。

使用完毕后,需要卸载:

umount /dev/sdb
Tags:
11/08 13
首先,设置nginx最新稳定版本的源,还有php-fpm的源

sudo gedit /etc/apt/sources.list
加入源

deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
deb-src http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
然后加入Key,并更新:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8D0DC64F
sudo apt-get update
首先, 安装最新稳定版本版本的Nginx

apt-get install nginx
nginx安装好, 我们测试一下OK没

sudo /etc/init.d/nginx start
访问下: http://localhost, OK, 可以访问
注: 如果没有/var/www目录大话,自己创建一个就可以了

然后我们安装php5.3和相关一堆东西

sudo apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json php5-suhosin php5-common php-apc php5-dev
接着安装php5-cgi和 php5-fpm

sudo apt-get install php5-fpm php5-cgi
启动CGI

/etc/init.d/php5-fpm start
接着我们配置nginx: sudo gedit /etc/nginx/site-available/default

我的配置如下:

server {
    listen 80;
    server_name localhost;
    root /var/www;

    access_log  /var/log/nginx/localhost.access.log;
    error_page  404 /404.html;

    location / {
        index  index.html index.htm index.php;
    }

    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }


    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;

    }

    location ~ /\.ht {
        deny  all;
    }

}

upstream backend {
        server 127.0.0.1:9000;
}
配置站点2
sudo cp default arlicle
然后将server_name改为:www.arlicle.com arlicle.com;
对应的目录也进行修改 然后执行下面大命令启动arlicle 站点

sudo ln -s /etc/nginx/sites-available/arlicle /etc/nginx/sites-enabled/arlicle
sudo /etc/init.d/nginx reload
访问测试一下,正常.

最后我们安装加速引擎:

sudo pecl install memcache
sudo apt-get install libpcre3-dev
sudo pecl install apc
注:

将phpmyadmin加入访问:
ln -s /usr/share/phpmyadmin /var/www/phpmyadmin 这样就可以访问了

设置nginx上传文件大小: /etc/nginx/nginx.conf
clientmaxbody_size 30M;

修改php.ini文件: /etc/php5/fpm
postmaxsize = 30M

配置nginx 访问php时不存在php的404报错, 在配置文件中加入

error_page 404 /404.html;
11/08 4
在svn里面有一个机制,当你的文件里面有编写$Id之类的东西,当你设置了这个文件的propset之后,svn ci将会自己加上谁修改的,什么日期修改的.

.....
Tags:
11/05 15
screen    进入screen模式
C-a c    在当前screen下建立新的窗口
exit    退出当前窗口,如果它是此screen的唯一窗口时,此screen也将完全退出。
C-a d     暂时断开screen会话
screen -ls    查看有哪些screen。
screen -r id 打开编号为id的screen窗口。
C-a w    显示所有窗口列表
C-a n    切换到下一个窗口
C-a p    切换到前一个窗口(与C-a n相对)


都说 tmux 更好一些,有空再折腾一下。



Screen命令参数:
-A -[r|R]          将所有的视窗都调整为目前终端机的大小。
-c filename        用指定的filename文件替代screen的配置文件’.screenrc’.
-d [pid.tty.host]  断开screen进程(使用该命令时,screen的状态一定要是Attached,也就是说有用户连在screen里)。一般进程的名字是以pid.tty.host这种形式表示(用screen -list命令可以看出状态)。
-D [pid.tty.host]  与-d命令实现一样的功能,区别就是如果执行成功,会踢掉原来在screen里的用户并让他logout。
-h <行数>         指定视窗的缓冲区行数。

-ls或–list        显示目前所有的screen作业。
-m                    即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-p number or name  预先选择一个窗口。
-r [pid.tty.host]  恢复离线的screen进程,如果有多个断开的进程,需要指定[pid.tty.host]
-R                      先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s shell             指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。(用来替代[pid.tty.host]的命名方式,可以简化操作).
-v                     显示版本信息。
-wipe                检查目前所有的screen作业,并删除已经无法使用的screen作业。
-x                     恢复之前离线的screen作业。

Screen命令的常规用法:

screen -d -r:连接一个screen进程,如果该进程是attached,就先踢掉远端用户再连接。

screen -D -r:连接一个screen进程,如果该进程是attached,就先踢掉远端用户并让他logout再连接

screen -ls或者-list:显示存在的screen进程,常用命令

screen -m:如果在一个Screen进程里,用快捷键crtl+a c或者直接打screen可以创建一个新窗口,screen -m可以新建一个screen进程。

screen -dm:新建一个screen,并默认是detached模式,也就是建好之后不会连上去。

screen -p number or name:预先选择一个窗口。

Screen实现后台运行程序的简单步骤:

1> 要进行某项操作时,先使用命令创建一个Screen:
[linux@user~]$ screen -S test1

2>接着就可以在里面进行操作了,如果你的任务还没完成就要走开的话,使用命令保留Screen:
[linux@user~]$ Ctrl+a+d                    #按Ctrl+a,然后再按d即可保留Screen
[detached]                                 #这时会显示出这个提示,说明已经保留好Screen了

如果你工作完成的话,就直接输入:
[linux@user~]$ exit                        #这样就表示成功退出了
[screen is terminating]

3> 如果你上一次保留了Screen,可以使用命令查看:
[linux@user~]$ screen -ls
There is a screen on:
9649.test1   (Detached)

恢复Screen,使用命令:
[linux@user~]$ screen -r test1 (or 9649)

Screen命令中用到的快捷键

Ctrl+a c :创建窗口

Ctrl+a w :窗口列表

Ctrl+a n :下一个窗口

Ctrl+a p :上一个窗口

Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态
Tags:
11/01 16
除了 Py2exe 之外,还有一些其它的 Python 到 exe 的打包程序,比如 Pyinstallercx_Freeze 等。

Py2exe用法:

第一步:
# mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])


第二步:
python mysetup.py py2exe


如果指定额外的文件,可以参考:
# mysetup.py
from distutils.core import setup
import glob
import py2exe
setup(console=["helloworld.py"],
      data_files=[("bitmaps",
                   ["bm/large.gif", "bm/small.gif"]),
                  ("fonts",
                   glob.glob("fonts\\*.fnt"))],
)
分页: 1/24 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]