agent17(agent)

时间:2024-04-21 04:12:03 来源:网友投稿 编辑:心若向阳

谈谈平台agent的那些事儿

agent是运维平台的支柱,当然技术圈也有很多no agent的拥护者,比如使用ansible亦或者直接ssh,如果是在单一环境或者纯内网环境肯定没有问题。作为平台来说需要尽量做到可以适配大部分网络环境,不需要现行网络做任何改造,尽量将功能整合在一起,这样有利于管理和提升工作效果。尤其是在需要大批量作业的情况下,agent的优势更是显露无疑。更多的人之所以喜欢例如ansible这样的运维管理工具,是因为大部分agent需要进行配置以及管理上的各种不方便。

分析了agent的优缺点,可不可将agent的优点继续保留,缺点尽可能的弱化呢?如果按照这样一个思路,agent的升级、卸载、安装、配置都可以通过平台上点一下按钮就可以完成的话,是不是大家也能够接受agent?因为它可以带来最多的价值,这也是像腾讯蓝鲸这样的平台依然会选择使用agent的原因。

所以从开发运维平台之初就尽可能将agent的维护成本降低,做到简单、智能、无感。

安装部署:

1、平台支持ssh或者ansible进行远程agent安装部署,可以在平台输入想要部署的服务器IP或者IP段,平台自动进行扫描并验证授权后安装部署agent,此后所有的操作都无需再进行服务器登陆授权。

2、在无法与平台直连互通的网络环境,可以通过执行curl -s http://<ip>/ag/install.sh|bash的方式完成agent的安装部署

3、亦或是可以将agent内置到操作系统镜像内,安装操作系统的时候可以一并安装

架构介绍:

agent包括2个可执行文件,agent和agent-dog,agent是主程序,agent-dog是守护程序。安装部署的时候只需要安装agent-dog即可,agent-dog启动后会自动从平台端去拉取最新的agent主程序并运行。agent和agent-dog之间通过socket进行通信且互为守护,保证了程序的高可用性,两者均支持一键自动升级、卸载。

agent的相关配置可以通过平台页面进行操作,操作完成后即刻生效。在平台页面变更agent版本号后无需其它操作,agent会自动升级到当前最新版本。

安全措施:

1、平台侧服务端无需直接暴露在公网上,agent进程启动后会通过websocket方式主动连接到服务端并建立双向通信通道。

2、agent连接服务端需要通过授权验证,每次通信信息需要携带授权凭证

3、agent与服务端的通信数据采用128位不可逆加密算法,防止数据被劫持或者篡改。

4、在执行命令的时候可以设置敏感度,如有危险执行命令会被拦截。

大家如果有什么好的建议,不妨在评论区留言,我们一起学习探讨一下......

谈谈平台agent的那些事儿

agent是运维平台的支柱,当然技术圈也有很多no agent的拥护者,比如使用ansible亦或者直接ssh,如果是在单一环境或者纯内网环境肯定没有问题。作为平台来说需要尽量做到可以适配大部分网络环境,不需要现行网络做任何改造,尽量将功能整合在一起,这样有利于管理和提升工作效果。尤其是在需要大批量作业的情况下,agent的优势更是显露无疑。更多的人之所以喜欢例如ansible这样的运维管理工具,是因为大部分agent需要进行配置以及管理上的各种不方便。

分析了agent的优缺点,可不可将agent的优点继续保留,缺点尽可能的弱化呢?如果按照这样一个思路,agent的升级、卸载、安装、配置都可以通过平台上点一下按钮就可以完成的话,是不是大家也能够接受agent?因为它可以带来最多的价值,这也是像腾讯蓝鲸这样的平台依然会选择使用agent的原因。

所以从开发运维平台之初就尽可能将agent的维护成本降低,做到简单、智能、无感。

安装部署:

1、平台支持ssh或者ansible进行远程agent安装部署,可以在平台输入想要部署的服务器IP或者IP段,平台自动进行扫描并验证授权后安装部署agent,此后所有的操作都无需再进行服务器登陆授权。

2、在无法与平台直连互通的网络环境,可以通过执行curl -s http://<ip>/ag/install.sh|bash的方式完成agent的安装部署

3、亦或是可以将agent内置到操作系统镜像内,安装操作系统的时候可以一并安装

架构介绍:

agent包括2个可执行文件,agent和agent-dog,agent是主程序,agent-dog是守护程序。安装部署的时候只需要安装agent-dog即可,agent-dog启动后会自动从平台端去拉取最新的agent主程序并运行。agent和agent-dog之间通过socket进行通信且互为守护,保证了程序的高可用性,两者均支持一键自动升级、卸载。

agent的相关配置可以通过平台页面进行操作,操作完成后即刻生效。在平台页面变更agent版本号后无需其它操作,agent会自动升级到当前最新版本。

安全措施:

1、平台侧服务端无需直接暴露在公网上,agent进程启动后会通过websocket方式主动连接到服务端并建立双向通信通道。

2、agent连接服务端需要通过授权验证,每次通信信息需要携带授权凭证

3、agent与服务端的通信数据采用128位不可逆加密算法,防止数据被劫持或者篡改。

4、在执行命令的时候可以设置敏感度,如有危险执行命令会被拦截。

大家如果有什么好的建议,不妨在评论区留言,我们一起学习探讨一下......

不恰饭了?任天堂希望玩家不要在手游上花太多钱

根据华尔街日报发布的一份名为“任天堂对智能手机游戏玩家:不要花太多钱”的新报道,任天堂一直在积极告诉手机游戏开发商放松游戏内购买激励措施。原因为任天堂担心在消费者眼中看起来过于贪婪。该公司已告知开发商DeNA和CyberAgent调整他们的手机游戏,以便玩家不会过度使用他们的产品,积极寻求更少的氪金点。

“任天堂对单一智能手机游戏赚取大量收入并不感兴趣,”CyberAgent的一名员工对华尔街日报表示。 “如果我们单独管理游戏,我们就会赚得更多。”此外,据报道,由于《失落的龙约》的收入较低,CyberAgent 17年来首次下调盈利预测。

开发DeNA负责任天堂移动游戏《Miitomo》,《超级马力欧酷跑》,《火焰之纹章英雄》和《动物森友会:口袋营地》。 CyberAgent的第一个任天堂项目来自于去年的冒险RPG,《失落的龙约》。今年夏天,手机游戏玩家将迎来《马力欧卡丁车Tour》的发布。今年还有一个传闻中的塞尔达IP也许会来到手机上,也许不会。

结合前两天Capcom社长辻本宪三关于Capcom不会通过开箱来赚玩家钱的言论,可以看出在全新运营方式的冲击下,还是有很多公司坚持着传统的。诚然,任何“良心”的运营行为背后都离不开商业上的考量,但是作为玩家,我们只有用脚投票、从行动上对这类行为作出肯定和支持,才能进我们所能把游戏市场推向更好。

性能分析-CPU

要点关注哪些CPU指标。如何定位CPU相关性能问题。一些常见问题分析。基本概念load值

平均负载值表示了对CPU资源的需求,是根据正在运行的进程数(使用率)和正在排队的进程数(饱和度)计算得出。在Linux下,不可中断状态(D),也会计入平均负载值,如执行磁盘IO。当load值超过CPU数量,则表示CPU饱和。当load值达到CPU数量的70%时,系统就可能会出现响应变慢。

注:不可中断状态,表示进程正在和硬件进行交互。为了保护进程数据和硬件的一致性,系统不允许其他进程或中断打断该进程,一般情况下,该状态持续时间较短。

nice值

进程优先级值,取值范围为-20~+19,值越小,优先级越高。

使用率

单位时间内CPU的繁忙情况的统计,与平均负载(load值)不一定完全对应。因为平均负载(load值)的统计,包含了运行进程和不可中断进程,也就是说,当进程处理不可断状态时,会计入平均负载,但是不计入使用率。

用户时间

执行用户态应用程序代码的时间。计算密集型应用程序,会把大量时间用在用户态代码。

系统时长

执行内核态代码的时间,包括系统调用、内核线程和中断时间。IO密集型应用程序,系统调用频率较高,通过执行内核代码进行IO操作。

进程上下文切换

分为自愿上下切换和非自愿上下文切换。

自愿上下文切换(cswch):进程无法获取所需资源,导致上下文切换。比如,IO、内存等资源不足。

非自愿上下文切换(nvcswch):由于时间片已到等原因,被系统强制调度,进而发生的切换。比如,大量进程都在争抢CPU。

常见场景:时间片耗尽、资源不足被挂起、进入sleep、优先级调度、中断等。

中断

中断是指处理器接收到来自硬件或软件信号,提示内核发生了某个事件。可以分为硬中断和软中断两种。

硬中断(上半部)是由硬件触发的,中断cpu当前正在处理的任务,执行少量的重要操作,最后发送一个软中断信号。如:网卡接收数据时,把网卡的数据读到内存中。

软中断(下半部)是由内核触发,通常以内核线程方式运行。被软中断信号唤醒后,执行未完成的工作。包括内核调度、cpu锁、网络收发、定时等。如:从内存中找到网络数据,并将其交给应用程序。

在linux系统下,可以看到ksoftirqd 进程,则为软件中断处理程序,中断的处理过程会导致上下文的切换。

CPU缓存

CPU中一般包含多个层次的缓存,CPU缓存一般有L1、L2和L3(可选)三级。访问速度:L1>L2>L3,其中,L1分为指令缓存和数据缓存;L1和L2缓存通常是每个CPU核独占,而L3缓存通常是在CPU槽内所有核共享。

CacheLine(高速缓存行)

高速缓存行由有效位(1位)、标记位(t位)和缓存块(b位)三个部分组成。高速缓存的结构将m个地址位划分为t个标记位、s个组索引和b个块偏移位。根据其映射关系分:直接映射(每组一行)、组相联(每组多行)和全相联(只有一个组)。

分析工具proc

使用watch 能看到各中断变化情况,如:/proc/softirqs。

# watch -d cat /proc/softirqsEvery 2.0s: cat /proc/softirqs Tue May 11 23:48:19 2021 CPU0 HI: 1 TIMER: 765274325 NET_TX: 0 NET_RX: 307335014 BLOCK: 70948692BLOCK_IOPOLL: 0 TASKLET: 16 SCHED: 0 HRTIMER: 0 RCU: 763596087

关键字段含义为:

TIMER:定时任务。NET_TX:网络发送。NET_RX:网络接收。SCHED:内核调度。RCU:RCU锁。uptime

查看机器平均负载值。

# uptime 16:31:14 up 184 days, 19:40, 1 user, load average: 0.01, 0.03, 0.05

最后三个数字是1、5和15分钟内的平均负载。

vmstat

统计虚拟内存信息,包括系统范围的cpu平均负载。

# vmstat 1procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 7 0 0 95588 142780 1482732 0 0 13 36 2 2 1 1 99 0 0 0 0 0 95324 142780 1482732 0 0 0 116 446 1013 2 1 95 2 0 0 0 0 95944 142780 1482732 0 0 0 0 607 1563 0 0 100 0 0

输出的第一行是系统启动以来的总结信息,Linux上的r列是显示的当前值。重点输出列如下:

r:运行队列长度:可运行线程的总数,包括运行状态和不可中断状态的进程数。b:处于不可中断状态下的进程数。cs:每秒上下文切换次数,这个值包括,系统调用时上下文切换、线程切换等。us:用户态时间。sy:系统态时间(内核)。cs:每秒进程上下文切换次数。id:空闲。wa:等待IO,即线程被阻塞等待磁盘IO时的CPU空闲时间。bi:块设备读取。bo:块设备写入。mpstat

统计每个CPU的信息。

# mpstat -P ALL 1Linux 3.10.0-1062.9.1.el7.x86_64 (VM_0_3_centos) 2021年05月11日 _x86_64_ (1 CPU)16时56分15秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle16时56分16秒 all 1.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 96.0016时56分16秒 0 1.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 96.00

重点输出列如下:

CPU:逻辑CPU ID,或者ALL表示总结信息。%user:用户态时间。%nice:以nice优先级运行的进程用户态时间。%sys:系统态时间。%iowait:IO等待。%irq:硬件中断CPU。%soft:软件中断CPU。%idle:空闲。sar

查看CPU相关的历史统计信息。

# sar -n DEV 1Linux 3.10.0-1062.9.1.el7.x86_64 (VM_0_3_centos) 2021年05月12日 _x86_64_ (1 CPU)10时47分13秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s10时47分14秒 eth0 5.15 4.12 0.27 0.89 0.00 0.00 0.0010时47分14秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0010时47分14秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s10时47分15秒 eth0 3.95 3.95 0.21 1.07 0.00 0.00 0.0010时47分15秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0010时47分15秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s10时47分16秒 eth0 7.22 6.19 0.39 2.00 0.00 0.00 0.0010时47分16秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00IFACE:表示网卡。rxpck/s:每秒接收的网络帧数。txpck/s:每秒发送的网络帧数。rxkB/s:每秒接收的字节数,单位:kB。txkB/s:每秒发送的字节数,单位:kB。ps

进程状态的细节信息,包括CPU用户统计信息。

# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 51788 3072 ? Ss 2020 20:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22root 2 0.0 0.0 0 0 ? S 2020 0:07 [kthreadd]

具体列信息,参考man ps ,重点列如下:

PID:进程号。%CPU:进程所占用的cpu百分比。%MEM:进程所占用的内存百分比。VSZ:进程所占用的虚拟内存大小。RSS:进程所占用的实际内存大小。STAT:进程状态,R:正在运行或等待运行;S:可中断状态,等待被唤醒;D:不可中断状态,一般处于正在和硬件交互;T:暂停状态或跟踪状态,表示该进程已经停止执行;Z:僵尸进程;I:空闲状态;X:退出状态,进程即将销毁。top

监控每个进程/线程的CPU信息。

# toptop - 17:07:23 up 184 days, 20:16, 1 user, load average: 0.00, 0.01, 0.05Tasks: 87 total, 2 running, 85 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 6.2 sy, 0.0 ni, 93.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1882056 total, 89844 free, 162580 used, 1629632 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 1532220 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4018 root 20 0 953996 27264 12024 S 6.7 1.4 13:03.90 YDService 1 root 20 0 51788 3072 1720 S 0.0 0.2 20:03.97 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:07.38 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 7:55.19 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0

可以通过top 命令下的f 指令,查看各字段含义。

pidstat

按每个进程/线程,输出CPU信息,包括用户态和系统态时间 的分解。默认情况下,仅输出活动进程信息。

# pidstat -w -u 1Linux 3.10.0-1062.9.1.el7.x86_64 (VM_0_3_centos) 2021年05月11日 _x86_64_ (1 CPU)17时16分21秒 UID PID %usr %system %guest %CPU CPU Command17时16分22秒 0 4018 0.00 1.02 0.00 1.02 0 YDService17时16分22秒 0 4035 1.02 0.00 0.00 1.02 0 YDEdr17时16分21秒 UID PID cswch/s nvcswch/s Command17时16分22秒 0 1 1.02 0.00 systemd17时16分22秒 0 6 7.14 0.00 ksoftirqd/017时16分22秒 0 9 68.37 0.00 rcu_sched17时16分22秒 0 1942 1.02 0.00 sshd17时16分22秒 0 4070 2.04 0.00 YDLive17时16分22秒 0 5430 1.02 0.00 pidstat17时16分22秒 0 6844 8.16 0.00 kworker/0:117时16分22秒 0 24919 2.04 0.00 tmux17时16分22秒 0 29496 1.02 0.00 barad_agent17时16分22秒 0 29501 3.06 0.00 barad_agent17时16分22秒 0 30085 10.20 0.00 redis-server17时16分22秒 0 30089 10.20 0.00 redis-server17时16分22秒 0 30091 10.20 0.00 redis-servertime

统计运行命令,并输出运行时间信息。

# time ./a.outreal 0m0.003suser 0m0.002ssys 0m0.000sreal:程序执行时间。user:用户态执行时间。sys:用户态执行时间。perf

cpu性能收集,通过perf生成火焰图,找出代码热点。

查看top

# perf top -g -p 9712

采样热点

# perf record -g -p 9712# perf report生成火焰图

火焰图生成工具,Flame Graph项目位于GitHub上:https://github/brendangregg/FlameGraph。

1、对perf采样的数据文件进行解析:perf script -i perf.data &> perf.unfold2、将perf.unfold中的符号进行折叠:./stackcollapse-perf.pl perf.unfold &> perf.folded3、生成svg图:./flamegraph.pl perf.folded > perf.svgpstack

查看进程的调用堆栈。

# pstack 4018Thread 23 (Thread 0x7f9043e78700 (LWP 4020)):#0 0x000000000075dc0a in ?? ()#1 0x0000000000782b1a in ?? ()#2 0x00000000000000f7 in ?? ()#3 0x0000000000000001 in ?? ()#4 0x0000000000000fc3 in ?? ()#5 0x000000c000355620 in ?? ()#6 0x0000000001000004 in ?? ()#7 0x000000000077ae8b in ?? ()#8 0x000000c00020eb40 in ?? ()#9 0x0000000000000000 in ?? ()……

在碰到cpu使用率很小,疑似进程死锁时,通过该命令,可以找到死锁的调用堆栈。但是该命令也有一定的局限性,当该进程没有带符号表时,无法看到其具体地堆栈信息。

strace

跟踪进程的调用链,可以跟踪到进程的系统调用,包括参数、返回值及执行时间等信息。

# strace -Ff -Ttt -p 4070strace: Process 4070 attached with 7 threads[pid 4079] 18:53:36.216102 futex(0xc000112848, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>[pid 4078] 18:53:36.216179 futex(0xd28380, FUTEX_WAIT_PRIVATE, 0, NddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddULL <unfinished ...>[pid 4077] 18:53:36.216186 futex(0xc000112148, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>[pid 4074] 18:53:36.216192 futex(0xd28278, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>[pid 4073] 18:53:36.216197 futex(0xc000030848, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>[pid 4072] 18:53:36.216203 restart_syscall(<... resuming interrupted futex ...> <unfinished ...>[pid 4070] 18:53:36.216210 epoll_pwait(5, [], 128, 0, NULL, 16149789) = 0 <0.000061>[pid 4070] 18:53:36.216308 epoll_pwait(5, ^Cstrace: Process 4070 detached

常用的命令参数:

-c:统计每一系统调用的执行时间、次数和出错的次数等。-f:跟踪由调用fork所产生的子进程。-F:跟踪由调用vfork所产生的子进程。-t:在输出中的每一行前加上时间信息。-tt:在输出中的每一行前加上时间信息,微秒级。-ttt:微秒级输出。-T:显示每个调用所消耗的时间。-o filename:将strace输出写入文件filename。-p pid:跟踪指定pid进程。

需要注意的是,strace 没有内容输出时,并不表示该进程发生阻塞,可能当前正在执行的操作并不存在系统调用。这一点可以通过进程当前状态来确定。

分析策略

1、检查系统中整体CPU利用率,单个CPU的利用率(如:top、mpstat等)。

2、确认系统负载受限于CPU,确认系统并发程度,是否为单线程,线程数是多少,是否设置容器限制(如:mpstat等)。

3、量化系统中CPU使用量百分比,找出使用率高的进程,并确认系统在用户态和内核态的使用情况(如:top、pidstat等)。

4、如果是内核态占比较高,则对系统调用、上下文切换、中断等方面,进行频率和数量的统计,如有必要可以考虑用kprobes定制工具,以便获取更多上下文信息(如:kprobes、/proc/softirqs等)。

5、如果是用户态占比较高,则使用性能剖析器来采样应用程序的调用栈信息,再用CPU火焰图来展示,如有必要可以考虑用uprobes定制工具(如:perf等)。

6、使用PMC测量每个时钟周期内的CPU指令执行量。(如:bpftrace、systemtap等)。

常见问题load值过高

当load值超过CPU核数的70%时,可以认为该指标异常。通常的排查思路:

1、使用mpstat -P ALL 5 判断出,该问题的原因,是算力不足还是IO等待。

2、使用pidstat -u 5 1 判断出是哪个进程导致。

3、通过pstack查看调用堆栈,strace跟踪进程的调用,或者使用perf查看该进程的热点代码。

%usr过高

用户态cpu使用率过高,一般是由于应用程序计算量过大导致。排查思路:

1、使用perf 找出代码热点,做进一步分析。

2、应用程序没有符号表信息时,可以考虑使用strace 跟踪进程的系统调用,并结合相关日志进行分析。

3、需要注意的是,如果有服务频繁重启,也可能导致CPU使用率过高,需要具体分析。

%system过高

内核态CPU使用率过高,一般是由于系统调用、中断等导致。排查思路:

1、查看中断数、系统调用情况等。

2、使用perf 找出代码调用链,做进一步分析。

%iowait过高

iowait升高时,可能是进程因为得不到硬件响应,而处于不可中断状态。

1、通过top命令查看哪些进程处于不可中断状态,状态标识为:D。

2、通过pidstat -d 1 10 -p 9720 确认当进程的读写情况。

3、使用strace或perf,跟踪进程的系统调用情况。

中断过高

当单个CPU的中断次数过1w,可以认为中断数偏高,排查思路:

1、使用watch -d cat /proc/interrupts 和watch -d cat /proc/softirqs ,分别查看中断信息。

2、找出变化幅度最大的指标,做进一步分析。

进程上文切换频繁

通过pistat -wt 可以看到每个进程及子线程的上下文切换情况;上文切换分为:自愿切换(cswch)和非自愿切换(nvcswch)。

自愿切换(cswch)过高:考虑IO、内存等系统资源不足。

非自愿切换(nvcswch)过高:考虑大量进程竞争cpu、中断、系统调用、时间片、优先级等因素。

cacheline命中率低

CPU中cacheline的命中率,对程序的性能有着很重要地意义。在做性能优化时,可以参考该指标进行有针对性的优化。

使用perf查看命中情况

# perf stat -B -e cache-references,cache-misses,cycles,instructions,branches,faults,migrations sleep 5 Performance counter stats for 'sleep 5': 17,262 cache-references 5,506 cache-misses # 31.897 % of all cache refs 1,634,376 cycles 721,565 instructions # 0.44 insn per cycle 140,824 branches 178 faults 1 migrations 5.001432881 seconds time elapsed使用valgrind --tool=cachegrind 查看命中情况

# valgrind --tool=cachegrind ./a.out==9129== Cachegrind, a cache and branch-prediction profiler==9129== Copyright (C) 2002-2017, and GNU GPL'd, by Nicholas Nethercote et al.==9129== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info==9129== Command: ./a.out==9129==--9129-- warning: L3 cache found, using its data for the LL simulation.^C==9129====9129== Process terminating with default action of signal 2 (SIGINT)==9129== at 0x400518: main (loop.cpp:10)==9129====9129== I refs: 66,818,498==9129== I1 misses: 769==9129== LLi misses: 761==9129== I1 miss rate: 0.00%==9129== LLi miss rate: 0.00%==9129====9129== D refs: 33,204,531 (33,091,924 rd + 112,607 wr)==9129== D1 misses: 8,410 ( 7,036 rd + 1,374 wr)==9129== LLd misses: 6,149 ( 5,037 rd + 1,112 wr)==9129== D1 miss rate: 0.0% ( 0.0% + 1.2% )==9129== LLd miss rate: 0.0% ( 0.0% + 1.0% )==9129====9129== LL refs: 9,179 ( 7,805 rd + 1,374 wr)==9129== LL misses: 6,910 ( 5,798 rd + 1,112 wr)==9129== LL miss rate: 0.0% ( 0.0% + 1.0% ) 进程CPU使用率很低,服务无响应

该现象说明,CPU当前未工作,进程处于资源等待状态。可以通过pstack命令,查看进程当前调用堆栈分析原因。大多数情况是,执行过程发生了阻塞等待,如死锁等。

参考

《Systems Performance:Enterprise and Cloud》

《BPF Performance Tools》

《Computer Systems》

《Modern Operating Systems》

http://www.brendangregg/linuxperf.html

阿根廷能否化解通胀难题?

阿根廷国家统计与人口普查研究所近日发布报告称,阿根廷8月通货膨胀率为12.4%,为1991年2月以来单月最高水平。专家表示,多重因素加剧阿根廷通胀。短期内,高通胀预计仍将对阿根廷经济构成挑战。

通胀高企

据路透社报道,截至今年8月,阿根廷过去12个月累计通胀率达124.4%,今年以来累计通胀率达80.2%。8月,在各类商品和服务中,食品饮料、医疗健康和家用电器等价格变化最大,涨幅均超过14%。

阿根廷比索也在急剧贬值,加剧了通胀趋势。阿根廷媒体“检查”网站发文称,8月中旬,阿根廷政府宣布将本币比索官方汇率贬值22%。美国银行策略师预计,美元兑阿根廷比索的官方汇率将在今年年底跌至545。

摩根大通分析显示,由于物价快速上涨,大量阿根廷民众遭遇生活成本危机,今年阿根廷的贫困率或将上升。

高通胀冲击阿根廷经济前景。牛津经济研究院预测,今年阿根廷国内生产总值将下降1.6%,在拉丁美洲主要经济体中表现疲软。

多重难题

中国现代国际关系研究院拉美研究所副所长孙岩峰接受采访时表示,多重因素叠加,导致阿根廷通胀飙升。

“阿根廷产业结构长期存在‘去工业化’问题,经济对外依存度高,大量工业产品依赖进口。近年来,受地缘政治因素及疫情影响,全球产业链供应链持续波动,大宗商品价格不断走高,导致阿根廷国内物价上涨。同时,由于高度依赖进口,阿根廷国内市场对汇率波动敏感。美联储自去年以来开启激进加息,导致阿根廷比索持续贬值,加大了阿根廷输入性通胀压力。”孙岩峰说。

据彭博社发文分析,高通胀加剧阿根廷民众生活压力。为解决经济民生问题,阿根廷政府近年来大幅增加公共开支,导致财政赤字扩大。为弥补赤字,阿根廷政府实施宽松货币政策,大规模投放的货币加剧了通胀趋势。

孙岩峰表示,阿根廷当前债务压力突出,高通胀进一步增加了政府偿债成本和债务违约风险。阿根廷民众对本币比索普遍存在不信任情绪,大量民众囤积美元、抛售本币,导致阿根廷银行系统的美元存款流失严重。外汇储备短期内大幅下降,削弱了阿根廷政府应对外部冲击的能力,增加了金融市场波动的风险。

不易缓解

面对复杂通胀局势,阿根廷央行今年5次实施加息。目前,基准利率已上调至118%。孙岩峰表示,高利率增加了企业融资成本,抑制了投资热情和生产活动,给阿根廷经济复苏前景增添了不确定性。

“高通胀打击了国际市场对阿根廷稳定经济局势的信心。国际金融机构和阿根廷金融界的不少分析认为,阿根廷控制通胀面临不小的难度。”孙岩峰说。

阿根廷中央银行近日发布的市场预期调查报告预测,短期内,阿根廷单月通胀率仍将高企,9月通胀率将达12%左右;今年年底,阿根廷年度累计通胀率预计将达169.3%。

为规避美元风险,阿根廷今年进行了不少“去美元化”尝试。据阿根廷《侧影报》报道,阿根廷和巴西今年年初进行了推进南美洲共同货币的讨论,以改善应对外部冲击能力、减少对美元依赖。

“阿根廷的‘去美元化’尝试是一项有益的探索,但短期内,阿根廷解决通胀的可能性不大。”孙岩峰说,“首先,阿根廷产业结构短期内难以发生转变,大量工业产品仍将依赖进口,输入性风险仍会难以控制。其次,高额外债仍是悬在阿根廷头上的‘达摩克利斯之剑’,影响阿根廷经济预期和金融市场稳定。其三,市场对阿根廷经济的担忧情绪还在持续,民众惜售美元,企业谨慎观望。10月大选前金融市场或将持续波动。多重困境下,阿根廷的通胀压力短期内不易缓解。”

声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送至邮件举报,一经查实,本站将立刻删除。转载务必注明出处:http://www.hixs.net/article/20240421/169625686196529.html