Focus-1


  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索

nginx 代理和负载均衡

发表于 2016-01-05 | 分类于 nginx



反向代理 和 负载均衡

七层负载均衡


四层负载均衡


正向代理


nginx 架构设计

发表于 2016-01-05 | 分类于 nginx


nginx+tomcat session复制

发表于 2016-01-05 | 分类于 nginx


centos 常用资料

发表于 2015-12-17 | 分类于 linux , centos

中文官网:https://www.centoschina.cn/

centos 文档安装

1
2
yum -y install kernel-doc
cd /usr/share/doc/kernel-doc-3.10.0/

linux磁盘占用分析

发表于 2015-11-30 | 分类于 linux

一,查看磁盘空间大小的命令:df

df命令用于查看磁盘分区上的磁盘空间,包括使用了多少,还剩多少,默认单位是KB;

比如以下命令:

1
df -hl

执行结果如下:

执行的结果每列的含义:

第一列Filesystem,磁盘分区
第二列Size,磁盘分区的大小
第三列Used,已使用的空间
第四列Avail,可用的空间
第五列Use%,已使用的百分比
第六列Mounted on,挂载点

解释一下后面的h和l参数,

  • h是把显示的单位改成容易辨认的单位,不再是默认的KB了;

  • l参数表示只显示本地磁盘分区,不包含的分区比如其他服务器共享的磁盘;

下面附上df命令的全部参数使用说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息


二,查看文件和目录大小的命令:du

du是用来查看文件和目录大小用的,和df略有区别

1,比如要看/data目录的总大小,可以用以下命令:

1
du -sh /data

执行果如下:

或者进到/data目录后直接执行:

1
du -sh

其中

  • -s 参数就是查看总大小(区别于查看其中每个目录的大小);
  • -h 参数是把默认的单位KB改为比较好辨认的单位;

2,如果要看/data目录下各个子目录的大小

包括子目录的子目录,但不包含/data下文件,可以用以下命令:

1
du -h

执行结果如下:

注:该命令不包含/data目录下的文件大小

3,如果要看/data目录下各个子目录的大小

包括子目录的子目录,且包含/data下文件,可以用以下命令:

1
du –h *

4,如果要看/data目录下各个子目录的大小,不包括子目录的子目录

可以用以下命令:

1
du -sh *

执行结果如下:

5,如果要看/data目录下各个子目录和文件的大小,需要使用-a参数:

1
du -ah

命令执行结果如下:

下面附上du命令的参数使用说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。


三,排序命令,sort

sort命令可以用于将文件内容排序并输出,也可以用于将某些查询命令的执行结果排序后输出

比如要将文件夹中的文件按大小排序,可以用以下命令:

1
du -a | sort -rn

执行结果如下:

管道前面的 du –a就是列出目录下所有的文件和目录的大小,后面的sort命令就是排序。

其中:

  • -r参数代表反向排序,因为sort默认是从小到大排序的,加-r是从大到小排序;
  • -n代表按照数字排序,只认数字不认单位,本例中的数字就是文件大小,单位是默认的KB,所以这个命令不能用du -ah,这会使排序结果出现2M小于100K的情况。

附上sort命令各参数的使用说明:

1
2
3
4
5
6
7
8
9
10
11
12
-b:忽略每行前面开始出的空格字符;
-c:检查文件是否已经按照顺序排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
-f:排序时,将小写字母视为大写字母;
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
-m:将几个排序号的文件进行合并;
-M:将前面3个字母依照月份的缩写进行排序;
-n:依照数值的大小排序;
-o<输出文件>:将排序后的结果存入制定的文件;
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符;
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

由参数可见sort命令主要还是用于文件内容输出的



四,只显示前几行的命令,head

head命令可以用于显示文件的前几行,也可以用于显示某些查询命令结果的前几行;

比如要将文件夹中的文件按大小排序,而且只看最大的几个,可以用以下命令:

1
du -a | sort -rn | head -5

执行结果:

head后面的-5表示显示前5行,不加数字则默认显示前10行

附上head命令各参数的使用说明:

1
2
3
4
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。

以上。

vi与vim修改tab为4个空格

发表于 2015-11-19

本文主要给大家介绍了关于vi与vim修改tab为4个空格的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

方法如下:

配置文件位置:/etc/virc 和 /etc/vimrc

配置文件中如果要添加注释,不能用#,要使用”

1
2
3
4
5
set ts=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
  • ts是tabstop的缩写,设TAB宽度为4个空格。
  • softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
  • shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
  • expandtab表示缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
  • autoindent自动缩进

对以前的文件可以用下面的命令进行空格和TAB互换

TAB替换为空格

1
2
3
:set ts=4
:set expandtab
:%retab!

空格替换为TAB

1
2
3
:set ts=4
:set noexpandtab
:%retab!

加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。

java异步回调demo

发表于 2015-08-24 | 分类于 java , java-concurrent-program

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.concurrent.*;

interface ICallback {
void getResult(int s);
}

class Calc {
public void calc(int i, ICallback callback) throws Exception {
FutureTask<Integer> futureTask = new FutureTask<Integer>(new Callable<Integer>() {
@Override
public Integer call() throws Exception {
int s = i * i;
Thread.sleep(5000);
System.out.println("do in future task. " + Thread.currentThread().getName());
callback.getResult(s);
return s;
}
});
new Thread(futureTask).start();
}
}

public class App {
public static void main(String[] args) throws Exception {
ICallback callback = new ICallback() {
@Override
public void getResult(int s) {
System.out.println(s);
}
};
new Calc().calc(1000, callback);
System.out.println("do in main");
}
}

Hello World

发表于 2015-02-01

Welcome to 0ms AC

简单常用算法

发表于 2015-01-01

单链表反转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Node {
Node(int v, Node n) {
this.val = v;
this.next = n;
}
int val;
Node next;
}
public class App {
public static Node reverse(Node node) {
Node pre = node;
Node cur = node.next;
Node tmp;
while (cur != null) {
tmp = cur.next;
cur.next = pre;
pre = cur;
cur = tmp;
}
node.next = null;
return pre;
}
public static void main(String []args) {
Node node = new Node(1, new Node(2, new Node(3, new Node(4, null))));

Node res = reverse(node);
while (res != null) {
System.out.print(res.val + "->");
res = res.next;
}
}
}

结果:

D:\B\A>javac App.java

D:\B\A>java App
4->3->2->1->
D:\B\A>

快速排序

Linux 修改swap虚拟内存大小

发表于 2015-01-01

​ swap是内存的交换区;换句话说,如果内存不够用了,那么系统会在硬盘上存储一些内存中不常用的数据,之后将这部分数据在存储中析构掉;这样内存就又有剩余空间可以运行东东啦,这个过程也就是所谓的交换,存储数据的硬盘部分就是swap分区。 装系统的时候可能会将swap大小设置的不合适 但是swap的大小不正确,很影响服务器的性能。下面说说怎么修改swap分区的大小。

1、查看系统Swap空间使用

1
2
3
4
5
[root@localhost mapper]# free -m
total used free shared buffers cached
Mem: 1006 753 252 3 32 526
-/+ buffers/cache: 195 810
Swap: 100 0 100

2、创建swap文件

1
2
3
4
5
6
7
8
9
[root@localhost mapper]# cd /usr
[root@localhost usr]# mkdir swap
[root@localhost usr]# cd swap
[root@localhost swap]# ll
总用量 0
[root@localhost swap]# dd if=/dev/zero of=/usr/swap/swapfile1 bs=1024 count=1000000
记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,5.40277 秒,190 MB/秒

(注意:if 表示 infile,of 表示outfile,bs=1024 表示写入的每个块的大小为1024B=1KB(1024B字节=1024*8bit位)

3、查看创建文件的大小

1
2
[root@localhost swap]# du -sh /usr/swap/swapfile1
977M /usr/swap/swapfile1

4、将目标文件设置为swap分区文件

1
2
3
[root@localhost swap]# mkswap /usr/swap/swapfile1
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=7eec8e34-e5d9-48f7-aa71-028268a48e46

5、激活swap,立即启用交换分区文件

1
[root@localhost swap]# swapon /usr/swap/swapfile1

6、若要想使开机时自启用,则需修改文件/etc/fstab中的swap行

1
2
3
[root@localhost swap]# vi /etc/fstab
/usr/swap/swapfile1 swap swap defaults 0 0
#加入此行,重启系统。

7、回收swap空间

如果不再使用,可以卸载该swap空间

1
swapoff /var/swap

8、从文件系统中回收

1
rm -rf /var/swap

9、查看某个进程使用的虚拟内存大小

1
2
cat /proc/26080/stat  | awk -F" " '{print "virt:"$23}'
cat /proc/26080/stat | awk -F" " '{print "rss:"$24}'

ps aux:

其中 VSZ(或VSS)列 表示,程序占用了多少虚拟内存。

​ RSS列 表示, 程序占用了多少物理内存。

​ 虚拟内存可以不用考虑,它并不占用实际物理内存。

(2). top 命令也可以

其中 VIRT(或VSS)列 表示,程序占用了多少虚拟内存。 同 ps aux 中的 VSZ列

​ RES列 表示, 程序占用了多少物理内存。同 ps aux 中的RSS列

1…2425

Focus-1

250 日志
63 分类
102 标签
Links
  • repository - https://gitee.com/carloz
© 2015 — 2020 Focus-1
Hosted by Gitee Repo