插件监控有用到简单的文件系统,想知道写入量很大之后会不会有太大的性能问题,这样才好确定是单个日志文件(方便收集和查看)还是要多个日志文件。

#修改私钥权限

一般 SSH 私钥都要赋予一个600的权限,否则会提示权限过高不能使用,但是 Windows 没有类似chmod的命令,所以只能手动的修改权限。

  1. 打开Windows PowerShell,输入$env:username得到当前用户名
  2. 右键->属性->安全->高级
  3. 禁用继承
  4. 删除所有的权限条目
  5. 将私钥文件的所有者设置为当前用户,即刚刚拿到的用户名

详细内容可以参考 真正解决 windows OpenSSH WARNING: UNPROTECTED PRIVATE KEY FILE!

#查看系统

首先要看下文件系统,因为各个文件系统可能存在差异。

服务器是阿里云的,系统版本为CentOS7

1
2
3
4
5
6
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.8.2003 (Core)
Release: 7.8.2003
Codename: Core

#查看文件系统

所用的文件系统是ext4

1
2
3
4
5
6
7
8
9
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 540K 919M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 40G 3.1G 35G 9% /
overlay 40G 3.1G 35G 9% /var/lib/docker/overlay2/ccce49da9cce1095aa9a4c46c83ec608529802a0ad8643e90e99e4e60bdc5a00/merged
tmpfs 184M 0 184M 0% /run/user/0
1
2
$ file -s /dev/vda1
/dev/vda1: Linux rev 1.0 ext4 filesystem data, UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 (needs journal recovery) (extents) (large files) (huge files)

#生成数据文件

模拟已经写入过的数据文件,一个1GB,一个10GB

1
2
dd if=/dev/zero of=1.test bs=8M count=128
dd if=/dev/zero of=10.test bs=8M count=1280

#写入测试

简单的用 Python 测试一下,写入10万条数据记录时间。

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
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import json
import time
import urllib2

work_dir = os.path.dirname(os.path.realpath(__file__))


# file_name = os.path.join(work_dir,'1.test')
file_name = os.path.join(work_dir,'10.test')

print time.time()

for i in range(100000):
url_us = 'https://app.ylwang.me/v1/status'
us = url_us

url_cn = 'https://sync-cn.onns.xyz/v1/status'
cn = url_cn

url_cn2 = 'https://api.huoranxuanyuan.cn/v1/status'
cn2 = url_cn2

f = open(file_name, 'a')
f.write(json.dumps({time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())):{"us":us,"cn":cn,"cn2":cn2}}))
f.write("\n")
f.close()
print time.time()

print time.time()

#测试结果

已有文件大小 开始时间戳 结束时间戳 差值(单位:秒)
1GB 1597029893.02 1597029897.22 4.20
10GB 1597029915.22 1597029919.57 4.30

总得来说,追加写入文件是一件被优化过的事情(我自己理解的),不会对已有的系统造成太大的负担,我之前还在想会不会因为文件过大,从而造成主要操作耗时过长。

知道了一个大概的数量级,对以后的应用也能有个粗略的概念!
知道了一些新的 Linux 命令~

#参考文档