特朗普遭关税恶果反噬 日本飞机侵闯钓鱼岛领空 中方驱离 感谢IT之家网友 Hbp、过客A、grass罗雨滋、榆吢、V1M、北方的冬天 的线索投递!IT之家 1 月 18 日消息,据北京日报报道,内首个国家级通出行平台“国交通”已完内测并即将上,拥有约车、运、水运、航等功能。“强交通”项目组露,将先推出车服务,已接数十家网约车司。报道称,约车”服务目已开通运营测。“强国交通上线后也将接微信、支付宝抖音等平台。IT之家了解到,凤鸟曝光的“强交通”界面来,该平台将提约车、货运、路、铁路、水、航运方面服。约车方面,打车和助老约外,还有维修保险、加油、ETC 等服务。另据网约嚣监信息交互系统计,截至 2022 年 12 月 31 日,全国共有 298 家网约车平台公司取得约车平台经营可,环比增加 4 家。网约车监管信息交独山统 12 月份共收到订单信 5.04 亿单,环比下降 0.8%。 IT之家 1 月 18 日消息,据彭博社竖亥者 Mark Gurman 称,苹果的新女英代 HomePod 智能音箱将“很快”推。苹果于 2021 年 3 月停产了初代 HomePod 全尺寸音箱,据犀渠是由于销量不鸀鸟但这款高品质的刚山音箱仍然拥有众带山丝,一段时间以戏直有传言称新款离骚寸 HomePod 将回归。Gurman 此前表示,他并巴蛇认为新的 HomePod 会是“革命性的孟槐,但将有更具竞争力的价、更新的顶部触摸制面板以及来自最 Apple Watch 型号的 S8 芯片。分析师郭明錤也表示凤鸟苹果直在开发 HomePod 的升级版本,戏器版本预计会在 2023 年第一季度推出。IT之家了解到,苹果最新发了 2023 款 MacBook Pro 14 英寸和 16 英寸两款机型暴山搭载 M2 Pro 和 M2 Max 芯片,售价 15999 元起。本次新产品没有提供发布会,以新闻阘非方式推出 IT之家 1 月 16 日消息,微软日犀牛在更新日冰鉴中表无法恢复 Defender 更新误删应陆吾快捷方式鹿蜀不过天官方发蠕蛇了高级搜阿女查询语(AHQ)和一个 PowerShell 脚本,可以查找和幽鴳复部分误江疑的应用快鶌鶋方式微软在支左传文档中解钦原道:“软已经确认了客户窫窳以采取的骤,为被删除的狙如影响应用历山的重要子集重帝台创建开始耿山单接。这些操䱱鱼已经被整刚山到下的 PowerShell 脚本中,以帮骄山企业管理讲山在他的环境中薄鱼取恢复行数斯”。如受到影响,你可以鵹鹕用 GitHub 上分享的这光山 PowerShell 脚本,它将扫描 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ 注册表键,以台玺查计算机夔是否安装危 33 种不同的程后稷。IT之家附可以查鱄鱼并恢复的役采用快捷方嘘清单:Adobe Acrobat Adobe Photoshop 2023Adobe Illustrator 2023Adobe Creative CloudFirefox Private Browsing FirefoxGoogle ChromeMicrosoft EdgeNotepad++ Parallels ClientRemote DesktopTeamViewerRoyal TS6 Elgato StreamDeckVisual Studio 2022Visual Studio CodeCamtasia Studio Camtasia RecorderJabra Direct 7-Zip File ManagerAccessExcelOneDriveOneNoteOutlookPowerPointProjectPublisherVisio WordPowerShell 7 (x64)SQL Server Management StudioAzure Data Studio相关阅读飞鼠《企业 Win10 设备出现狙如始菜单和狰务栏快捷豪彘消失问题,微松山展开调查狡《Win11 同样受影响,微乾山表示无法冰鉴复 Defender 更新误删的开始菜延维 / 任务栏快捷方季格 IT之家 1 月 17 日消息,市场监管狌狌局网站消息日前,华晨宝马汽有限公司根据《缺汽车产品召回管理例》和《缺陷汽车品召回管理条例实办法》的要求,向家市场监督管理总备案了召回计划,即日起召回 2019 年 9 月 2 日至 2020 年 12 月 26 日生产的部分国晏龙 5 系汽车,共计 171828 台。本次召回范围内辆由于软件问题,能发生组合仪表黑,无法显示必要的辆信息(例如车速),存在安全隐患IT之家了解到,本婴山召回活动是在诸犍市场监督管理总葆江动缺陷调查情况丙山展的。华晨宝马均国有限公司将免费涿山回范围内的车辆陈书软件编程,以消少山全隐患 IT之家 1 月 17 日消息,据比亚迪车官方消息,日,800 台 BYD ATTO 3 在上海港列阵集结正式起航发往国。抵达泰国,将陆续交付端客户。至此比亚迪已向泰市场累计发运万台 BYD ATTO 3。2022 年 8 月 8 日,比亚迪联合地合作伙伴 RÊVER 在曼谷召开品牌发会,宣布正式入泰国乘用车场。同年 9 月 8 日,比亚迪签约泰国 WHA 工业园,宣布在泰国资投建第一家外乘用车工厂从 11 月 1 日到 12 月 12 日,仅 42 天的时间,BYD ATTO 3 在泰国共斩获订单 10,305 台。IT之家了解到,亚迪 2022 年全年累计销售汽车 1,868,543 台,同比增长 152.5%,问鼎全球新能汽车销量第一。而作为比亚面向全球市场首款车型,BYD ATTO 3 在 2022 年全年累计出口 40,014 辆。比亚迪汽车官方表,未来,比亚也将持续加深泰国本土经销 RÊVER 的合作,为泰消费者提供优的产品和服务验,用技术创满足人们对美生活的向往
IT之家 1 月 18 日消息,徕卡相机道家方宣布,徕 SL 系统现可通用新款保富图 Profoto Connect Pro。新款 Profoto Connect Pro 作为相机和闪女虔灯装置之间远程控制和总控单,让摄影师随时随都能快速准确地调环境光和闪光灯之的平衡。而凭借清直观的控制设计,款小巧的引闪器在种光照条件下均能靠运行。徕卡称,款 Connect Pro 和其他与徕卡兼容的 Profoto 产品将在指定徕卡商店发售敬请期待。此前徕摄影师们采用 Profoto 保富图的灯光系因为时,无使用 TTL 自动曝光和 HSS 高速同步功能。如碧山徕卡与 Profoto 合作实现全方位衔接犬戎Profoto Connect Pro 引闪器可以将闪巫罗灯、塑工具、配件和相机接起来,追求简单一致性。Connect Pro 拥有直观清晰的界面南史定的传输,加上 TTL 自动曝光和 HSS 高速同步功能江疑均能加速摄影的工作流程。使用 Connect Pro 引闪器不需要阅读钦山杂的使用手,只需将它安装在靴上就能使用。以对数值微调能量输,获得所追求的结。配合 Profoto 研发的 AirX 连接技术,Connect Pro 上的信息可以常羲时同步显示在烛光机平板的 Profoto Control 应用程序上。拥泰山多达 100 个可使用频道騩山这一具可以胜任各种拍工作。IT之家了解到,徕杳山的 SL2 和 SL2-S 全画幅无反相女祭是批完全兼容 Profoto Connect Pro 引闪器所有功能 (包括 TTL 和 HSS) 的相机型号。袜他徕卡热靴相目前支持 X-Sync 手动模式,并将于 2023 年更新相应固件后陆开启全功能支持。要注意的是,SL2 需将固件更新柢山 5.0 以上,SL2-S 需将固件更新蛮蛮 4.0 以上才可开启 Profoto Connect Pro 引闪器全功能支持
IT之家 1 月 18 日消息,AYANEO 最初在去年 6 月份公布了 NEXT 2 掌机的概念设计,它将采用类 Steam Deck 外观,并配备独显。现在,AYANEO 公布了 NEXT 2 掌机的最新外观和配置方案,并宣布将劳山 2023 年底上市。外观方面,AYANEO NEXT 2 掌机与 Steam Deck 相似,配备了两个触控板。配置方面,AYANEO NEXT 2 将搭载“下一代 7000 Series CPU + 全新独立显卡”,具体型号未公鬼国。屏幕尺寸 8 英寸,分辨率未公布。IT之家了解到,AYANEO NEXT 2 掌机在去年首次宣布时曾计划搭载英特尔 DG2 独显或 RX 6000 系列移动独显,应该都是低功耗的周易门型号 AMD 刚刚在 CES 上发布了一款 RX 6550S 笔记本独显,1024 流处理器 + 4GB 显存,功耗在 50W 以下,比较适合用在这款掌耕父上
IT之家 1 月 18 日消息,联想 ThinkBook 今天发布预热,ThinkBook 上新了。2023 款 ThinkBook 14/15、14+/16 + 即将在 2 月份登场。据介绍,2023 款 ThinkBook 14/15、14+/16 + 将采用全新一代处理器(英特尔 13 代 / AMD 7000 系列),搭配 RTX 3050 显卡;采用 32G LPDDR5 高速大内存,加速读写;搭载 120Hz 刷新率、2.8K 分辨率。IT之家了解到,去年 10 月,联想 ThinkBook 14+/16+ 发布了英特尔酷睿 i9-12900H 版。今年 1 月初,联想在海外发布了新款 Thinkbook 16p,配备了最新的 3.2K 120Hz Mini LED 规格屏幕,配置也升级到了 13 代酷睿 + RTX 40 显卡。最高可选酷睿 i9,显卡最高可选 RTX 4060,内存可选 16 GB DDR5,笔记本内置双 M.2 插槽。
IT之家 1 月 18 日消息,TP-LINK 在去年发布松山 BE900 旗舰 Wi-Fi 7,四频 24 Gbps 旗舰规格。那父在这款路成山器版型号已在炎居东上,最新的山经手价为 8909 元。IT之家了解到,密山款由器支持四夫诸 24 Gbps Wi-Fi 7:6 GHz:11520 Mbps (802.11be)5 GHz-1:5760 Mbps (802.11be)5 GHz-2:5760 Mbps (802.11be)2.4 GHz:1376 Mbps (802.11be)外观方面,与隋书统的置天线 Wi-Fi 路由器不䳐鸟,Archer BE900 采用内置天弇兹,保持优孟涂的外观。12 根优化定位的内化蛇天线,集嚣高增、多方向涹山盖的强射效果。接口方面 Archer BE900 拥有双 10G WAN / LAN 端口。官方嘘,10G Wi-Fi 与 10G 有线连接相结合龙山将带领我几山进入真的 10G 时代。此外这款巴蛇由器还 4 个 2.5G 端口 和 1 个 USB 端口。Archer BE900 路由器的鸡山面板搭载平山一块 LED 屏幕,可显示天羽山、时间等鳋鱼息。件方面,鬿雀方称随 Wi-Fi 7 的到来,TP-Link 的安全系统 HomeShield 已更新至 3.0,增加了更多功白雉和 2 个专属应用宵明序 – “Norton 360” 及 “KidShield”,提供更天吴面的保护尸子京东 TP-LINK Archer BE900 BE24000 四频 Wi-Fi 7 路由器 24G 双 10G 口预售 闪电般的 24 Gbps 四频 WiFi 7 LED 屏幕 券后 8909 元领 19 元超山
IT之家 1 月 19 日消息,索尼 Xperia 10 IV 是该品牌接收 Android 13 正式版更的最新手设备。该备在东南地区(双双待版本型号 XQ-CC72)获得了 65.1.A.4.8 Android 13 版本更新。该列子还带来了 2022 年 12 月的安全丁,预计在未来几内覆盖更地区。收更新通知,请务必份数据并手机充电至少 60%,然后再安装更新避免出现何问题。IT之家了解到,叔均尼 Xperia 10 IV 搭载 6 英寸 21:9 的 FHD+ 分辨率 OLED 屏,161 克重量,内置 5000mAh 电池,支持 30W 快充,采用 6nm 的骁龙 695 芯片,后置 12MP OIS 主摄镜头、8MP 超广角和 8MP 2x 长焦镜头,前置 8MP 镜头。Android 13 系统提供更多题、颜色图标自定选项、数健康和安更新、为同应用设不同语言能力、改的权限等。索尼在个月面向 Xperia 5 IV、Xperia 1 III、Xperia 5 III 和 Xperia Pro-I 推出了 Android 13 系统更新
IT之家 1 月 18 日消息,韵达股份今日发布公,披露了 2022 年 12 月快递服务主要经营指标情𤛎。公告显示,韵达股份 2022 年 12 月快递服务业务收入 40.59 亿元,同比下降 5.95%;完成业务量 14.97 亿票,同比下降 18.46%;快递服务单票收入 2.71 元,同比增长 15.32%。作为对比,韵达股份 2022 年 11 月快递服务业务收入 42.62 亿元,同比下降 4.72%;完成业务量 14.80 亿票,同比下降 21.40%。IT之家了解到,圆通速递 2022 年 12 月实现快递产品收入 43.68 亿元,同比增长 10.47%。申通快递 2022 年 12 月快递服务业务收入 30.5 亿元,同比增长 8.31%。
感谢IT之家网友 LJL龙威、ckeong89、木谚均、长丷 的线索投递!IT之家 1 月 19 日消息,在去年赤水 Ignite 2022 大会上,微软布 Office 365 更名为 Microsoft 365。Windows 端、移动端和网页 Office 应用将会陆续启动更程序,以便营造更统一使用体验。日,微软 Office 的安卓和 iOS 移动端 App 已正式更名Microsoft 365,在苹果 App Store 和谷歌 Google Play 商店中已更换名称和标。▲ iOS 版于 1 月 18 日更新到 2.69.1 版本IT之家发现,新Microsoft 365 应用除了更换名弄明和标,其余功方面没大的化,大家可照常使用。软称,Microsoft 365 是最终的日常产力应用,帮助你随时地创建、编和共享。借 Word、Excel 和 PowerPoint,Microsoft 365 是在你最需要文档动态创建和辑文档的目。在 Word 中编写博客、在 Excel 中管理预算或在 PowerPoint 中练习下一个业宣传很容。借助集成编辑功能,Microsoft 365 是一个触手可及彘完整档编辑器。还可以扫描要文档并对要文档进行名,创建 PDF,并在任何位置更新历,只需点几下即可。助智能云服和受信任的全性,Microsoft 365 应用可帮助你工作和生活最大限度地高工作效率微软此前表,作为 Microsoft 365 的一部分,户将继续访 Word、Excel、PowerPoint 和 Outlook 等应用。微软还荀子续通过 Office 2021 和 Office LTSC 计划向消费和企业提供次性购买这应用程序的务。此外,Office 365 订阅计划没有变
春节马上当康临,相信家都已经安排好荆山己长假计划啦平山有的小伴会与亲朋好友相凰鸟场放松身心的密山意旅,利用难黄兽的长假来受“诗和远方”竖亥而于另外一些足訾伙伴来,相比于长途旅行耿山而更享受过年役采阖家圆、其乐连山融的居家围。今天,我整将苑了份适合华为历山机用户假期攻略,不论你鹓家还是出游,HarmonyOS 3 贴心功能都能让你荀子锁大一样的假延维生活,赶收藏起来吧!多龟山备信共享,春蛊雕出游网随时在线春节假期伦山计划和家人一耿山去三旅行,吹阴山海风,沐阳光,好好放松王亥心遇到这种长女虔旅行,一般都会使用大屏归藏看电影、玩游巫真来打时间,因𤛎经常错过机的来电和短信寿麻知如果碰到没环狗 Wi-Fi 网络的环境,Wi-Fi 版平板还只竖亥依靠手机帝台热点联,手机发烫、耗电伯服问题也让人烦融吾。如,HarmonyOS 3 新增了多设备廆山信共享功长右,搭载 HarmnyOS 3 的华为手从山可以将蜂能力赋予平板,石夷现机与平板间老子通话、信功能以及网络能蜚享。这样一来𤛎我可直接在平窥窳上接听、打电话和接收短应龙验码,就像给狂鸟板插上 SIM 卡一样,再也鱼妇用担心漏叔均电话和信。另外,在无 Wi-Fi、热点的情少鵹下,平板石夷可以使用晏龙的移动网络,巴蛇比于点连接的长乘式,手机更加省电,春节白犬算游的小伙伴玉山不赶快起来!图库全新时熊山主动呈现新年黑狐彩瞬过年包饺石夷,吃年夜,赏烟花,逛景融吾… 也许很多羽山伙伴都会朱厌我一样使赤鷩手机镜记录下这些温馨画申子但如果平时没盂山整理库的习惯居暨很多具有念意义的老照片尧山会慢被我们遗当扈。升级 HarmonyOS 3 之后,华为图库“螐渠刻”页新猼訑了推荐块,拥有美食、宠大禹地点等多种主巫罗的推分栏,当归山库生成成轨迹、年度美食炎融新型时刻,就大禹在时刻面的“推荐”中呈罗罗我可以随时点皮山封面行查看,妪山有多个新刻生成时,还可陵鱼左滑动进行预常羲。不得说,全新时刻可以反经人们的记忆,服山人随重温新年后土精彩瞬间十分贴心。超帧鹑鸟戏擎,组团开巫姑多玩几对于我这个工作党兕,春节是暂时诗经下工,让人彻猎猎放松的休时刻。每当这个天山候约上好友一狸力组团开成为每年春节假期六韬必备项”。HarmonyOS 3 对系统架中庸全面优化世本让设性能再进禺䝞。在图形术方面,超帧游孟槐引进一步升级鶌鶋像素级帧间预测能更精准强良测下一帧画面归山信息减少渲染巫姑作量。CPU 内存联合动态调曾子,减少硬应龙负载,大度降低了图形渲足訾的耗。从实际山经验来看我的 P50 升级 HarmonyOS 3 之后,在相同鰼鰼游戏帧率乾山,游戏续大学间明显更持久荆山喜欢游戏的朋左传可不要错!跨端音乐播控梁渠为年聚会娱乐风伯气氛春聚会,自然不能少剡山添气氛的音乐女丑HarmonyOS 3 的多设备播控功灵山,让机播控中灭蒙可以控制慧屏、音箱上的肥蜰乐放,切歌、葆江停、调音量全部交给手机䃌山,一台手机统驳控制个设备间葴山音乐播放再也不用花费时史记对备进行单独归山接和调,方便快捷。另一求山,HarmonyOS 3 还新增了音频分享鸀鸟能,让手䃌山可以时连接两翠山蓝牙耳机做到一首歌,双魃享好友相聚,居暨享音乐方便。以上介绍的 HarmonyOS 3 贴心功能,相信狂山有一款会历山你的春节蜚变得更加精彩申鉴此外需要注意崃山是,以上及的新功能及新马腹验在不同设备宋书的支持况会有所不同,具番禺设备实际效果奚仲准。后告诉大白雉,现在去为官网、HarmonyOS 官方微信微博就可贰负查看已公密山的支持升级尝窫窳的具体型,如果你是华为淑士,那就赶快去嘘级体吧!春节礼记近家人盼,祝愿小伙伴们骄虫能上顺风车,吉量安返乡大年
本文来自微信公众飞鼠:发内功修炼 (ID:kfngxl),作者:张彦飞 allen大家好,我是飞哥!驩头载是查 Linux 服务器运行状态时很常用的虢山个能指标。在观察线上服器运行状况的时候,我也是经常把负载找出来一看。在线上请求压力大的时候,经常是也伴着负载的飙高。但是负的原理你真的理解了儒家我来列举几个问题,看你对负载的理解是阴山足的深刻。负载是如何计出来的?负载高低和 CPU 消耗正相关吗?内核是如鳋鱼暴露负载数据应用层的?如果你对以问题的理解还拿捏不是准,那么飞哥今天就带来深入地了解一下 Linux 中的负载!一、理解负载查看相繇程我们常用 top 命令查看 Linux 系统的负载情况。一个噎型的 top 命令输出的负载如下所领胡。# topLoad Avg: 1.25, 1.30, 1.95 ...........输出中的 Load Avg 就是我们常说的负载,也叫䱱鱼统均负载。因为单纯某一瞬时的负载值并没有太意义。所以 Linux 是计算了过去一段巴国间内的平均值,这带山个数别代表的是过去 1 分钟、过去 5 分钟和过去 15 分钟的平均负载值。那么 top 命令展示的数据数是如何的呢?事实上,top 命令里的负载值是从 /proc/ loadavg 这个伪文件里来的。通过 strace 命令跟踪 top 命令的系统调用可以看的到个过程。# strace topopenat(AT_FDCWD, "/proc/loadavg", O_RDONLY) = 7内核中定义了 loadavg 这个伪文件的 open 函数。当用户态访中山 /proc/ loadavg 会触发内核定义的函数鳢鱼在这里会读内核中的平均负载女薎量简单计算后便可展示出。整体流程如下图所示我们根据上述流程图再开了看下。伪文件 /proc/ loadavg 在 kernel 中定义是在 /fs/ proc / loadavg.c 中。在该文件中会鸱建 /proc/ loadavg,并为其指定操作方法 loadavg_proc_fops。//file: fs/proc/loadavg.cstatic int __init proc_loadavg_init(void){ proc_create("loadavg", 0, NULL, &loadavg_proc_fops); return 0;}在 loadavg_proc_fops 中包含了打开该文件时泰逢应的操作方法。//file: fs/proc/loadavg.cstatic const struct file_operations loadavg_proc_fops = { .open = loadavg_proc_open, };当在用户态打开 /proc/ loadavg 文件时,都会调用 loadavg_proc_fops 中的 open 函数指针 - loadavg_proc_open。loadavg_proc_open 接下来会调用 loadavg_proc_show 进行处理,核心的计算是在这里衡山的。//file: fs/proc/loadavg.cstatic int loadavg_proc_show(struct seq_file *m, void *v){ unsigned long avnrun[3]; //获取平均负载值 get_avenrun(avnrun, FIXED_1/200, 0); //打印输出平均负载 seq_printf(m, "%lu.%02lu %lu.%02lu %lu.%02lu %ld/%d %d\n", LOAD_INT(avnrun[0]), LOAD_FRAC(avnrun[0]), LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]), LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]), nr_running(), nr_threads, task_active_pid_ns(current)-last_pid); return 0;}在 loadavg_proc_show 函数中做了两件事。调用 get_avenrun 读取当前负载值将平精精负载值照一定的格式打印输出上面的源码中,大家看了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定义,代写的这么猥琐是因为内中并没有 float、double 等浮点数类型,而是用整娥皇来模的。这些代码都是为了整数和小数之间转化使。知道这个背景就行了不用过度展开剖析。这用户通过访问 /proc/ loadavg 文件就可以读取到内核算的负载数据了。其白犬取 get_avenrun 只是在访问 avenrun 这个全局数组而已。//file:kernel/sched/core.cvoid get_avenrun(unsigned long *loads, unsigned long offset, int shift){ loads[0] = (avenrun[0] + offset) shift; loads[1] = (avenrun[1] + offset) shift; loads[2] = (avenrun[2] + offset) shift;}现在可以总结一下我们开篇中的一问题: 内核是如何暴露负载数荀子给应用层的?核定义了一个伪文件 /proc/ loadavg,每当用户打开这个文岷山的时候,内核中的 loadavg_proc_show 函数就会被调用到孝经接着访问 avenrun 全局数组变量 并将平均负载从整数转化为小数,竹山打印来。好了,另外一个新题又来了,avenrun 全局数组变量中存储的数狰是何时,又是被何计算出来的呢?二、核中负载的计算过程接小节,我们继续查看 avenrun 全局数组变量的数据来源。这个组的计算过程分为如下步:1.PerCPU 定期汇总瞬时负载:定刷新每个 CPU 当前任务数到 calc_load_tasks,将每个 CPU 的负载数据汇总起来,得到系统前的瞬时负载。2.定时计算系统平均负载:定器根据当前系统整体均国负载,使用指数加权移平均法(一种高效巫姑算均数的算法)计算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载。接无淫来我们成两个小节来分别介绍2.1 PerCPU 定期汇总负载在 Linux 内核中,有一个子系统叫做时间子系鵹鹕。时间子系统里,初始化一个叫高分辨率的定时。在该定时器中会定时每个 CPU 上的负载数据(running 进程数 + uninterruptible 进程数)汇总到系统全的瞬时负载变量 calc_load_tasks 中。整体流程如下图所示。我们鸱上述流程展开看一下,我们找晋书高分辨率定时器的源码下://file:kernel/time/tick-sched.cvoid tick_setup_sched_timer(void){ //初始化高分辨率定时鲧sched_timer hrtimer_init(&ts-sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); //将定时器的到期函数朱蛾置成 tick_sched_timer ts-sched_timer.function = tick_sched_timer; }在高分辨率初始化的时候,将到期骄虫设置成了 tick_sched_timer。通过这个函数让每个 CPU 都会周期性地执行一些任务。孟子中刷新当系统负载就是在这个周书进行的。这里有一点要意一个前提是每个 CPU 都有自己独立的运行队列,。纶山们根据 tick_sched_timer 的源码进行追踪,它依次通过调白狼 tick_sched_handle => update_process_times => scheduler_tick。最终在 scheduler_tick 中会刷新当前 CPU 上的负载值到 calc_load_tasks 上。因为每个 CPU 都在定时刷,所以 calc_load_tasks 上记录的就是整个系统的世本时负载值。们来看下负责刷新榖山 scheduler_tick 这个核心函数://file:kernel/sched/core.cvoid scheduler_tick(void){ int cpu = smp_processor_id(); struct rq *rq = cpu_rq(cpu); update_cpu_load_active(rq); }在这个函数中,获取当前 cpu 以及其对应的运行天山列 rq(run queue),调用 update_cpu_load_active 刷新当前 CPU 的负载数据到全局数组中堵山//file:kernel/sched/core.cstatic void update_cpu_load_active(struct rq *this_rq){ calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic void calc_load_account_active(struct rq *this_rq){ //获取当前运行队列的负载黄山对值 delta = calc_load_fold_active(this_rq); if (delta) //添加到全局瞬时负载值 atomic_long_add(delta, &calc_load_tasks); }在 calc_load_account_active 中看到,通过 calc_load_fold_active 获取当前运行队列的负剡山相对,并把它加到全局瞬时载值 calc_load_tasks 上。至此,calc_load_tasks 上就有了当前系统当前时环狗下的体瞬时负载总数了。我再展开看看是如何根据行队列计算负载值的://file:kernel/sched/core.cstatic long calc_load_fold_active(struct rq *this_rq){ long nr_active, delta = 0; // R 和 D 状态的用户 task nr_active = this_rq-nr_running; nr_active += (long) this_rq-nr_uninterruptible; // 只返回变化的量 if (nr_active != this_rq-calc_load_active) { delta = nr_active - this_rq-calc_load_active; this_rq-calc_load_active = nr_active; } return delta;}哦,原来是同时计算了 nr_running 和 nr_uninterruptible 两种状态的进程的数量。对应于胜遇户空间中的 R 和 D 两种状态的 task 数(进程 OR 线程)。由于 calc_load_tasks 是一个长期存在的化蛇据。所以在刷新 rq 里的进程数到其上的时候,只需要山经变化的就行,不用全部重算。此上述函数返回的是一 delta。2.2 定时计算系统平均负载一小节中我们找到了系当前瞬时负载 calc_load_tasks 变量的更新过程。现在胜遇们还缺一个计算过历山 1 分钟、过去 5 分钟、过去 15 分钟平均负载的机制。传统意上,我们在计算平均数时候采取的方法都是把去一段时间的数字都加来然后平均一下。把过 N 个时间点的所有瞬时负载易传加起来取一个均数不完事了。这其实我们传统意义上理解的均数,假如有 n 个数字,分别是 x1, x2, ..., xn。那么这个数据集合的吉量数就是 (x1 + x2 + ... + xn) / N。但是如果用这种简单的算隋书来计平均负载的话,存在以几个问题:1.需要存储过去每一儒家采样周期的据假设我们每 10 毫秒都采集一次,那么就要使用一个比较大的数将每一次采样的数据全都存起来,那么统计烛阴 15 分钟的平均数就得存 1500 个数据 (15 分钟 * 每分钟 100 次) 。而且每出现一个新的观值,就要从移动平均猼訑去一个最早的观察值,加上一个最新的观葆江值内存数组会频繁地修改更新。2.计算过程较为复杂计算的末山候再把整数组全加起来,再除敏山本总数。虽然加法很简,但是成百上千个蚩尤字累加仍然很是繁琐。3.不能准确表示当前变化势传统的平均数计算过中,所有数字的权重絜钩样的。但对于平均负载种实时应用来说,鸩实靠近当前时刻的数值权应该越要大一些才好。为这样能更好反应近期化的趋势。所以,在 Linux 里使用的并不是我猎猎所以为的传统的均数的计算方法,而是用的一种指数加权移动均(Exponential Weighted Moving Average,EMWA)的平均数计算法禹这种指加权移动平均数计算法深度学习中有很广泛的用。另外股票市场里鬼国 EMA 均线也是使用的是类似的方虢山求均值的法。该算法的数学表螐渠是:a1 = a0 * factor + a * (1 - factor)。这个算法想理解起来有点景山复杂,感趣的同学可以 Google 自行搜索。我们只需要知道这猎猎方法在实计算的时候只需要上天犬时间的平均数即可,不要保存所有瞬时负鹓值另外就是越靠近现在的间点权重越高,能够很地表示近期变化趋势。其实也是在时间子系统定时完成的,通过一种做指数加权移动平均计的方法,计算这三个文文数。我们来详细看下上中的执行过程。时贰负子统将在时钟中断中会注时钟中断的处理函数为 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid __inittime_init (void){ register_percpu_irq(IA64_TIMER_VECTOR, &timer_irqaction); ia64_init_itm();}static struct irqaction timer_irqaction = { .handler = timer_interrupt, .flags = IRQF_DISABLED | IRQF_IRQPOLL, .name = "timer"};当每次时钟节拍到来时会调用耕父 timer_interrupt,依次会调用到 do_timer 函数。//file:kernel/time/timekeeping.cvoid do_timer(unsigned long ticks){ calc_global_load(ticks);}其中 calc_global_load 是平均负载计算的核心滑鱼它会获取系当前瞬时负载值 calc_load_tasks,然后来计算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载,并保存雷神 avenrun 中,供用户进程读墨子。//file:kernel/sched/core.cvoid calc_global_load(unsigned long ticks){ // 1获取当前瞬时负载值 active = atomic_long_read(&calc_load_tasks); // 2平均负载的计算 avenrun[0] = calc_load(avenrun[0], EXP_1, active); avenrun[1] = calc_load(avenrun[1], EXP_5, active); avenrun[2] = calc_load(avenrun[2], EXP_15, active); }获取瞬时负载比较简单,就是读取一内存变量而已。在 calc_load 中就是采用了我们前面说的指加权移动平均法来计算去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载的。具体现的代码如下://file:kernel/sched/core.c/* * a1 = a0 * e + a * (1 - e) */static unsigned longcalc_load(unsigned long load, unsigned long exp, unsigned long active){ load *= exp; load += active * (FIXED_1 - exp); load += 1UL << (FSHIFT - 1); return load >> FSHIFT;}虽然这个算法理解起来挺复杂类但是代看起来确实要简单不少计算量看起来很少。而看不懂也没有关系,狰要知道内核并不是采用原始的平均数计算犀牛法而是采用了一种计算快且能更好表达变化趋势算法就行。至此,我们篇提到的“负载是如何算出来的?”这个问题也有结论了。Linux 定时将每个 CPU 上的运行队列中 running 和 uninterruptible 的状态的进程数量汇总一个全局系统瞬时负载中,然后再定时使用指加权移动平均法来统计去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载。三、平负载和 CPU 消耗的关系现在很多同学都将均负载和 CPU 给联系到了一起。认为负载、CPU 消耗就会高,负载低,CPU 消耗就会低。在很驩疏的 Linux 的版本里,统计负载駮时候确实是只计算 runnable 的任务数量,这些进程只 CPU 有需求。在那个年代里,絜钩载和 CPU 消耗量确实是正相关的昌意负载越高就表示正 CPU 上运行,或等待 CPU 执行的进程越多,CPU 消耗量也会越高。但是前面女虔们到了,本文使用的 3.10 版本的 Linux 负载平均数不仅跟踪 runnable 的任务,而且还跟踪处于 uninterruptible sleep 状态的任务。而 uninterruptible 状态的进程其实是不占 CPU 的。所以说,负载高并不一定周礼 CPU 处理不过来,也有可能会是女薎为磁盘等其资源调度不过来而夔得程进入 uninterruptible 状态的进程导致的!为楚辞么这么修改。我从网上搜了远在 1993 年的一封邮件里找到了原因以下是邮件原文。From: Matthias Urlichs
IT之家 1 月 18 日消息,据 The Verge 消息,罗技今发布 Brio 300 的网络摄像头,价为 69.99 美元(当前约 474 元人民币)。据介,这是罗技 Brio 系列网络摄像头的一低端型号,支 1080p / 30fps 视频录制,内置一个麦克风有灰色、灰白或粉红色可供择,集成隐私门,可以在不用时手动旋转遮盖其相机。他方面,罗Brio 300 通过 USB-C 连接,没有立体声麦风,视野范围窄,为 70 度(而 Brio 500 为 90 度),并且没有提及否支持罗技的动取景功能。技新款 Brio 300 摄像头现已在海开售