LINUX系统的内存管理知识详解

LINUX系统的内存管理知识详解,第1张

内存是Linux内核所管理的最重要的资源之一。内存管理系统是 *** 作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量。虚拟内存就是为了克服这个矛盾而采用的策略。系统的虚拟内存通过在各个进程之间共享内存而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。以下就是我为大家整理到的详细LINUX系统内存管理的知识,欢迎大家阅读!!!

LINUX系统教程:内存管理的知识详解

一、内存使用情况监测

(1)实时监控内存使用情况

命令行使用“Free”命令可以监控内存使用情况

代码如下:

#free

total used free shared buffers cached

Mem: 256024 192284 63740 0 10676 101004

-/+ buffers/cache: 80604 175420

Swap: 522072 0 522072

上面给出了一个256兆的RAM和512兆交换空间的系统情况。第三行输出(Mem:)显示物理内存。total列不显示核心使用的物理内存(通常大约1MB)。used列显示被使用的内存总额(第二行不计缓冲)。 free列显示全部没使用的内存。Shared列显示多个进程共享的内存总额。Buffers列显示磁盘缓存的当前大小。第五行(Swap:)对对换空间,显示的信息类似上面。如果这行为全0,那么没使用对换空间。在缺省的状态下,free命令以千字节(也就是1024字节为单位)来显示内存使用情况。可以使用—h参数以字节为单位显示内存使用情况,或者可以使用—m参数以兆字节为单位显示内存使用情况。还可以通过—s参数使用命令来不间断地监视内存使用情况:

#free –b –s2

这个命令将会在终端窗口中连续不断地报告内存的使用情况,每2秒钟更新一次。

(2)组合watch与 free命令用来实时监控内存使用情况:

代码如下:

#watch -n 2 -d free

Every 20s: free Fri Jul 6 06:06:12 2007

total used free shared buffers cached

Mem: 233356 218616 14740 0 5560 64784

-/+ buffers/cache: 148272 85084

Swap: 622584 6656 615928

watch命令会每两秒执行 free一次,执行前会清除屏幕,在同样位置显示数据。因为 watch命令不会卷动屏幕,所以适合出长时间的监测内存使用率。可以使用 -n选项,控制执行的频率;也可以利用 -d选项,让命令将每次不同的地方显示出来。Watch命令会一直执行,直到您按下 [Ctrl]-[C] 为止。

二、虚拟内存的概念

(1)Linux虚拟内存实现机制

Linux虚拟内存的实现需要六种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制、内存共享机制。

首先内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址,在用户程序运行时如果发现程序中要用的虚地址没有对应的物理内存时,就发出了请求页要求;如果有空闲的内存可供分配,就请求分配内存(于是用到了内存的分配和回收),并把正在使用的物理页记录在缓存中(使用了缓存机制)。 如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存。另外在地址映射中要通过TLB(翻译后援存储器)来寻找物理页;交换机制中也要用到交换缓存,并且把物理页内容交换到交换文件中后也要修改页表来映射文件地址。

(2)虚拟内存容量设定

也许有人告诉你,应该分配2倍于物理内存的虚拟内存,但这是个不固定的规律。如果你的物理保存比较小,可以这样设定。如果你有1G物理内存或更多的话,可以缩小一下虚拟内存。Linux会把大量的内存用做Cache的,但在资源紧张时回收回。你只要看到swap为0或者很小就可以放心了,因为内存放着不用才是最大的浪费。

三、使甩vmstat命令监视虚拟内存使用情况

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对 *** 作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总它可以反映真正的系统情况。

代码如下:

#vmstat 5 5

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

1 0 62792 3460 9116 88092 6 30 189 89 1061 569 17 28 54 2

0 0 62792 3400 9124 88092 0 0 0 14 884 434 4 14 81 0

0 0 62792 3400 9132 88092 0 0 0 14 877 424 4 15 81 0

1 0 62792 3400 9140 88092 0 0 0 14 868 418 6 20 74 0

1 0 62792 3400 9148 88092 0 0 0 15 847 400 9 25 67 0

vmstat命令输出分成六个部分:

(1)进程procs:

r:在运行队列中等待的进程数 。

b:在等待io的进程数 。

(2)内存memoy:

swpd:现时可用的交换内存(单位KB)。

free:空闲的内存(单位KB)。

buff: 缓冲去中的内存数(单位:KB)。

cache:被用来做为高速缓存的内存数(单位:KB)。

(3) swap交换页面

si: 从磁盘交换到内存的交换页数量,单位:KB/秒。

so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

(4) io块设备:

bi: 发送到块设备的块数,单位:块/秒。

bo: 从块设备接收到的块数,单位:块/秒。

(5)system系统:

in: 每秒的中断数,包括时钟中断。

cs: 每秒的环境(上下文)切换次数。

(6)cpu中央处理器:

cs:用户进程使用的时间 。以百分比表示。

sy:系统进程使用的时间。 以百分比表示。

id:中央处理器的空闲时间 。以百分比表示。

如果 r经常大于 4 ,且id经常小于40,表示中央处理器的负荷很重。 如果bi,bo 长期不等于0,表示物理内存容量太小。

四、Linux 服务器的内存泄露和回收内存的方法

1、内存泄漏的定义:

一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。

2、内存泄露的危害

从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的`是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。存在内存泄漏问题的程序除了会占用更多的内存外,还会使程序的性能急剧下降。对于服务器而言,如果出现这种情况,即使系统不崩溃,也会严重影响使用。

3、内存泄露的检测和回收

对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。在 Linux 或者 unix 下,C、C++语言是最使用工具。但是我们的 C++ 程序缺乏相应的手段来检测内存信息,而只能使用 top 指令观察进程的动态内存总额。而且程序退出时,我们无法获知任何内存泄漏信息。

使用kill命令

使用Linux命令回收内存,我们可以使用Ps、Kill两个命令检测内存使用情况和进行回收。在使用超级用户权限时使用命令“Ps”,它会列出所有正在运行的程序名称,和对应的进程号(PID)。Kill命令的工作原理是:向Linux *** 作系统的内核送出一个系统 *** 作信号和程序的进程号(PID)。

应用例子:

为了高效率回收内存可以使用命令ps 参数v:

代码如下:

[root@>

1、Linux系统基础

严格的来讲,Linux 不算是一个 *** 作系统,只是一个 Linux 系统中的内核,即计算机软件与硬件通讯之间的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。GNU是Richard Stallman组织的一个项目,世界各地的程序员可以变形GNU程序,同时遵循GPL协议,允许任何人任意改动。但是,修改后的程序必须遵循GPL协议。

Linux 是一个多用户多任务的 *** 作系统,也是一款自由软件,完全兼容POSIX标准,拥有良好的用户界面,支持多种处理器架构,移植方便。

为程序分配系统资源,处理计算机内部细节的软件叫做 *** 作系统或者内核。如果你希望详细了解 *** 作系统的概念,请查看 *** 作系统教程。

用户通过Shell与Linux内核交互。Shell是一个命令行解释工具(是一个软件),它将用户输入的命令转换为内核能够理解的语言(命令)。

2、网络服务

服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行。

其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。

这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。

3、shell脚本和另一个脚本语言

shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了。别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义。

Shell是系统的用户界面,提供了用户与内核进行交互 *** 作的一种接口。它接收用户输入的命令并把它送入内核去执行 。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

Linux提供了像MicrosoftWindows那样的可视的命令输入界面--X Window的图形用户界面(GUI)。它提供了很多桌面环境系统,其 *** 作就像Windows一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。GNOME。

每个Linux系统的用户可以拥有他自己的用户界面或Shell,用以满足他们自己专门的Shell需要。

同Linux本身一样,Shell也有多种不同的版本。主要有下列版本的Shell:

Bourne Shell:是贝尔实验室开发的。

BASH:是GNU的Bourne Again Shell,是GNU *** 作系统上默认的shell。

Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。

C Shell:是SUN公司Shell的BSD版本。

Z Shell:The last shell you’ll ever need! Z是最后一个字母,也就是终极Shell。它集成了bash、ksh的重要特性,同时又增加了自己独有的特性。

而另一个脚本语言是可选的,一般是3P,即Python,Perl和PHP,PHP就不需要考虑了,除非你要做开发,我个人建议学Python会比较好,不难实现自动化运维,Perl是文本处理很强大,反正这两个学一个就行了。

4、sed和awk工具

必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。

5、文本处理命令

sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。

6、数据库

首选MySQL,别问我为什么不学SQL Server和Oracle,因为Linux用得最多绝对是MySQL。增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

7、防火墙

不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则。如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而Filter表用得最多,反正不学就肯定不合格。

8、监控工具

十分十分重要,我个人建议,最好学这3个,cacti,nagios,zabbix。企业用得最多应该是nagios和 zabbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。

Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。

9、集群和热备

这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰。集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理。还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,MySQL热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。

10、数据备份

不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。

你好,很高兴为你解答。现业界比较流行UbuntuLinux系统:推荐慕课网的教学视频,我晚上也经常看。更多专业的科普知识,欢迎关注我。如果喜欢我的回答,也请给我赞或转发,你们的鼓励,是支持我写下去的动力,谢谢大家。

楼主要发电子版的话,给个邮箱地址,我有一些。如果只要书目可以看下面的
Linux程序设计第3版
作者:(英)马修,(英)斯通斯 著,陈健 等译 出版社:人民邮电出版社 出版时间:2007年07月
它提供了一种理想的方式来阐明每个被介绍过的更高级的主题。我们对这个应用程序的第一次讨论出现在本书第2章的结尾处,它展示了一个非常大的shell脚本是如何组织的,shell如何处理用户输入、如何构造菜单以及如何存储
¥8900¥6675折扣:75折节省:¥2225
--------------------------------------------------------------------------------
Linux命令、编辑器与Shell编程
作者:(美)索贝尔(Sobell,MG) 著,杨明军,王凤芹 译 出版社:清华大学出版社 出版时间:2007年03月
要想真正高效地使用Linux,就必须全面掌握shell和命令行。通常必须购买两本书才能达到精通的目的:一本关于Linux基本概念和技术的指南,再加上一个单独的参考手册。更糟糕的是,大多数Linux参考手册只是对man手册页的
¥9800¥7350折扣:75折节省:¥2450
--------------------------------------------------------------------------------
Linux 指令速查手册
作者:吴恒奎 编著 出版社:人民邮电出版社 出版时间:2007年12月
将程序放在后台执行 18 cd指令:切换目录 19 chfn指令:设置finger信息 110 chsh指令:改变登录系统时的shell 111 clear指令:清除终端屏幕 112 date指令:显示或设置系统时间 113 echo指令:显示
¥4500¥3375折扣:75折节省:¥1125
--------------------------------------------------------------------------------
嵌入式Linux系统开发技术详解-基于ARM
作者:孙纪坤,张小全 编著 出版社:人民邮电出版社 出版时间:2006年08月
三星S3C2410开发板介绍 24242 众多的开发板供应商 26第3章 Linux编程环境 2831 Linux常用工具 28311 Shell简介 28312 常用Shell命令 30313 编写Shell脚本 38314 正则表达式 42315 程序编辑器 4432 Mak
¥3900¥2930折扣:75折节省:¥970
--------------------------------------------------------------------------------
UNIX shell范例精解(第4版)
作者:(美)奎格莉(Quigley,E) 著,李化,张国强 译 出版社:清华大学出版社 出版时间:2007年05月
在本书的再版中,Quigley对她的经典著作进行了全新的改版,增加了当前shell程序员所需的最新内容——使用bash进行Linux shell编程。 本书汇聚了Quigley 21年来的 shell编程教学经验。书中不仅展示了能帮助读者快速
¥11800¥8850折扣:75折节省:¥2950
--------------------------------------------------------------------------------
完全手册--Linux系统与网络服务管理技术大全(含光盘)
作者:杨明华 等编著 出版社:电子工业出版社 出版时间:2008年01月
2545 使用ssh客户端 2546 使用scp客户端 2547 使用sftp客户端 2548 使用SSH Secure Shell访问SSH服务器 255 计算机病毒与防护 2551 计算机病毒种类 2552 计算机病毒特征 25
¥7980¥5990折扣:75折节省:¥1990
--------------------------------------------------------------------------------
构建嵌入式LINUX系统
作者:(美)雅默 著,韩存兵,龚波 改编 出版社:中国电力出版社 出版时间:2004年12月
硬件两方面。 系统管理 你必须能够胜任各种系统管理工作,如硬件的配置。系统的设定。维护以及利用shell命令脚本让管理工作自动化。 设备驱动程序 你必须知道如何对各种Linux设备驱动程序进行开发及
¥4800¥3600折扣:75折节省:¥1200
--------------------------------------------------------------------------------
Red Hat Linux 9系统管理与服务器配置
作者:杨宗德 等编著 出版社:人民邮电出版社 出版时间:2007年07月
Linux桌面管理基本 *** 作 231 使用桌面面板 232 使用Nautilus文件管理器 233 打开终端Shell提示 234 注销及关闭系统 第3章 Shell及文本界面基本 *** 作 31
¥4200¥3150折扣:75折节省:¥1050
--------------------------------------------------------------------------------
鸟哥的LINUX私房菜:基础学习篇
作者:鸟哥 编著 出版社:科学出版社 出版时间:2005年06月
第1篇主要介绍Linux *** 作系统的规划与安装;第2篇介绍Linux的基本文件权限与系统架构;第3篇介绍非常重要的Shell与Shell scripts的基本内容,这是所有以文字界面 *** 控主机的基础;第4篇着重介绍Linux用户管理,包括账号
¥4200¥3150折扣:75折节省:¥1050
--------------------------------------------------------------------------------
Linux 基础与应用
作者:陈明 编著 出版社:清华大学出版社 出版时间:2005年10月
本书是一本有关Linux *** 作系统应用的教程,主要内容包括:Linux概述、Red Hat Linux系统安装、linux常用命令、X window 系统、Red Hat Linux常用工具、Linux系统管理与配置、Linux 常用应用程序、Linux下的Shell编程、
¥2300¥1725折扣:75折节省:¥575
--------------------------------------------------------------------------------
鸟哥的Linux私房菜——服务器架设篇(附CD-ROM光盘一张)
作者:鸟哥 编著 出版社:科学出版社 出版时间:2005年06月
网站的相关维护技巧以及鸟哥平时在维护主机时认为较佳的维护经验。 本书目标读者 本书侧重于深入讨论架站规划、流程、技巧与维护等工作,比较基础的Linux *** 作与相关Shell语法在本书谈论得不多,相关内容请参考
¥7300¥5480折扣:75折节省:¥1820
--------------------------------------------------------------------------------
Ubuntu Linux入门到精通(附光盘)
作者:李蔚泽 著 出版社:机械工业出版社 出版时间:2007年05月
本书全面介绍了Ubuntu Linux的相关知识,内容详实,论述清晰。主要内容包括Ubuntu介绍、文件系统管理、进程管理、压缩与查询系统、Shell应用、TCP/IP基础、网络管理、网络硬盘以及加密安全通信等内容。 本书是一本
¥4200¥3150折扣:75折节省:¥1050
--------------------------------------------------------------------------------
Linux标准学习教程
作者:IT同路人 编著 出版社:人民邮电出版社 出版时间:2008年01月
Linux字符界面、Linux常用命令、Linux应用软件、Linux系统启动、Linux系统管理和维护、Linux服务器配置、shell编程、Linux C语言基础、Linux程序编译和调试维护等内容。 本书内容丰富、结构清晰、讲解细致、图文并茂
¥4900¥3675折扣:75折节省:¥1225
--------------------------------------------------------------------------------
LPI LINUX认证权威指南
作者:(美)迪安 著,Taiwan公司 编译 出版时间:2007年08月
GNu与unix基本命令、文件系统、x窗口系统等;第二部分涵盖102考试,包括Linux内核、开机程序、打印、文件管理、Shell程序设计、系统管理、TCP/IP网络概论、常用的网络服务、系统安全防护等。 通过考试不仅是对自己
¥6800¥5090折扣:75折节省:¥1710
--------------------------------------------------------------------------------
Unix与Linux系统管理
作者:(美)弗里斯科比(Frisch,AE) 著,刘颖 译 出版社:清华大学出版社 出版时间:2006年11月
打印机和假脱机子系统第14章 自动执行管理任务第15章 管理系统资源第16章 配置和构建内核第17章 记账附录 管理Shell的编程 内容提要: 本书自1991年10月第一版开始,就成了Unix和Linux系统管理员的终极参考书。本
¥12900¥9680折扣:75折节省:¥3220
--------------------------------------------------------------------------------
LINUX系统故障诊断与排除
作者:(美)柯克兰(Kirklan,dJ) 等著,周良忠 等译 出版社:人民邮电出版社 出版时间:2007年01月
登录问题 141 /etc/password,/etc/shadow和密码时效 142 Linux配置造成的登录失败 143 PAM 144 shell问题 145 密码问题 146 小结 147 尾注 第15章 X Windows问题 151 X背景 152 X组件
¥4800¥3600折扣:75折节省:¥1200
--------------------------------------------------------------------------------
Linux系统应用与开发教程——计算机基础课程系列教材
作者:刘海燕 等编著 出版社:机械工业出版社 出版时间:2005年10月
142 登录 143 注销 144 关闭 15 小结 习题 第2章 shell及常用命令 21 Linux终端使用基础 211 什么是Linux终端 212
¥2500¥1870折扣:75折节省:¥630
--------------------------------------------------------------------------------
LINUX黑客大曝光(第2版)
作者:(美)哈茨,(美)李 著,王一川 译 出版社:清华大学出版社 出版时间:2003年12月
Linux上口令的工作方式 92 口令破解程序 93 PAM 94 蛮力口令猜测攻击 95 口令保护 96 Linux中非shell程序的用户认证机制 97 小结 第4部分 服务器的安全问题 第10章 邮件安全性 101 Ma
¥5900¥4410折扣:75折节省:¥1490
--------------------------------------------------------------------------------
LINUX SERVER HACKS(卷二):100个业界最尖端的技巧和工具
作者:(美)哈根,(美)琼斯 著,张颖 译 出版社:清华大学出版社 出版时间:2007年01月
29同时在多台服务器执行命令 30用加固的Wiki安全协作 31用grubby编辑GRUP配置 32给 Tab键一个显示的机会 33在退出shell后保持进程运行 34断开控制台连接而不结束会话 35使用脚本节约时间和培训别人 3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/10718723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存