有没有办法测量PostgreSQL 中的逻辑复制延迟?
我正在尝试编写一个PowerShell脚本,该脚本将查询Active Directory中的所有服务器并查看应用Windows Update的最后日期.
我遇到了一些麻烦,所以为了完成它,我创建了两个脚本,一个在Powershell中获取服务器,另一个在VBScript中查询最后一个日期.我找到了一个允许我查询上次安装日期的Powershell 模块,但它非常慢,特别是在远程服务器上.
这是PS代码:
Get-ADComputer -Filter 'OperatingSystem -like "*Server*"' -Properties * |
Select-Object Name | Sort-Object Name |
ForEach-Object {
Get-WUHistory -ComputerName $_.Name | Sort-Object Date,ComputerName -Descending |
Select-Object -First 1
}
Run Code Online (Sandbox Code Playgroud)
它太慢了,几乎无法使用.
我有一些VBScript,我拼凑在一起,速度要快得多.见下文:
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile ("servers.csv", 1)
server = ""
Do Until file.AtEndOfStream
line = file.Readline
server = line
'wscript.echo server
Set objSession = CreateObject("Microsoft.Update.Session", server)
If Err.Number <> 0 Then
'WScript.Echo …
Run Code Online (Sandbox Code Playgroud) 如何提高以下查询的性能?
class Worker(models.Model):
name = models.CharField(max_length=32, db_index=True)
# This line is slow:
Worker.objects.filter(name__startswith='John')
Run Code Online (Sandbox Code Playgroud)
我已经在模型中添加了索引,但是...根本不使用它。但是,在没有以下情况的情况下进行普通过滤时,索引确实起作用startswith
:
# This line is fast:
Worker.objects.filter(name='John')
Run Code Online (Sandbox Code Playgroud)
为什么不使用索引startswith
?
我有一个带有django-autoslug
字段的模型:
class Article(models.Model):
headline = models.TextField()
content = models.TextField()
slug = AutoSlugField(populate_from='headline', max_length=128, allow_unicode=True, always_update=True)
Run Code Online (Sandbox Code Playgroud)
在开发环境中(OS X + Postgres),一切都很好用.但是,在部署的实例(Ubuntu + Postgres)上,尝试使用django admin创建对象时发生错误.它仅在标题中包含西里尔字母时才会出现:
AssertionError: slug is defined before trying to ensure uniqueness
Run Code Online (Sandbox Code Playgroud) 我正在使用Go和Redis开发API.问题是RAM的使用不足,我找不到问题的根源.
TL; DR版本
有数百/数千个哈希对象.1 KB对象(键+值)中的每一个都需要大约0.5 MB的RAM.但是,没有内存碎片(INFO
没有显示).
此外,dump.rdb比RAM设置小70倍(对于50个对象,360KB dump.rdb对25MB RAM,对于5000对象为35.5MB对2.47GB).
长版
Redis实例主要填充task:123
以下类型的哈希:
"task_id" : int
"client_id" : int
"worker_id" : int
"text" : string (0..255 chars)
"is_processed" : boolean
"timestamp" : int
"image" : byte array (1 kbyte)
Run Code Online (Sandbox Code Playgroud)
此外,还有一些整数计数器,一个列表和一个有序集(都由task_id组成).
RAM使用率与任务对象数量呈线性关系.
50个任务的INFO输出:
# Memory
used_memory:27405872
used_memory_human:26.14M
used_memory_rss:45215744
used_memory_peak:31541400
used_memory_peak_human:30.08M
used_memory_lua:35840
mem_fragmentation_ratio:1.65
mem_allocator:jemalloc-3.6.0
Run Code Online (Sandbox Code Playgroud)
和5000个任务:
# Memory
used_memory:2647515776
used_memory_human:2.47G
used_memory_rss:3379187712
used_memory_peak:2651672840
used_memory_peak_human:2.47G
used_memory_lua:35840
mem_fragmentation_ratio:1.28
mem_allocator:jemalloc-3.6.0
Run Code Online (Sandbox Code Playgroud)
dump.rdb
50个任务的大小为360kB,5000个任务的大小为35553kB.
每个任务对象的序列化长度约为7KB:
127.0.0.1:6379> DEBUG OBJECT task:2000
Value at:0x7fcb403f5880 refcount:1 encoding:hashtable serializedlength:7096 lru:6497592 lru_seconds_idle:180
Run Code Online (Sandbox Code Playgroud)
我写了一个Python脚本试图重现问题: …
我已连接到网络,但由于以下原因无法获取 IP 地址PORT_ERROR
:
$ zerotier-cli join f00ba7abcdf00ba7
200 join OK
$ sudo zerotier-cli status
200 info abcd123123 1.2.12 ONLINE
$ zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks f00ba7abcdf00ba7 1e:12:34:56:30:86 PORT_ERROR PRIVATE -
Run Code Online (Sandbox Code Playgroud) python ×3
django ×2
postgresql ×2
django-orm ×1
go ×1
macos ×1
memory ×1
powershell ×1
redigo ×1
redis ×1
slug ×1
sql ×1
vbscript ×1
vpn ×1
zerotier ×1