当前位置: 首页 > news >正文

广州网站改版方案郑州网站优化的微博_腾讯微博

广州网站改版方案,郑州网站优化的微博_腾讯微博,wordpress类似微博,个人网页制作软件大家好#xff0c;我是飞哥#xff01;前段时间飞哥参加了一期 OSChina 官方举办的「高手问答」栏目。在这个栏目里#xff0c;我和 OSChina 的网友们以《深入理解 Linux 网络》为主题#xff0c;对大家日常所关心的一些问题展开了一些技术探讨。今天我把这个活动中探讨的内…大家好我是飞哥前段时间飞哥参加了一期 OSChina 官方举办的「高手问答」栏目。在这个栏目里我和 OSChina 的网友们以《深入理解 Linux 网络》为主题对大家日常所关心的一些问题展开了一些技术探讨。今天我把这个活动中探讨的内容都记录下来分享给大家问题1虚拟化时代65535 的端口号更不够用了吧问一个 linux 最多能 65535 个端口那么在虚拟化盛行的现在这个 65535 更容易被占满了吧怎么处理答首先一个 linux 最多能 65535 个端口的说法是不确切的。因为即使在一台 Linux 上也是可以配置多 ip 的每个 ip 都可以有 65535个 端口可用。另外再说说现代的虚拟化。在 2008 年发布的 Linux2.6.24 内核版本里引入了一个叫网络命名空间的东东。这个就是现代容器虚拟化的基石。在每一个命名空间里都可以拥有自己独立的 ip、端口号、路由表等等网络资源。对于现在常用的 docker 一个 docker 里就对应一个网络命名空间非host模式下。每个容器都是 65536 个端口可用的。另外还有一个要知道的是如果连接不同的服务器端的时候即使只有一个 ip同一个端口号也是可以用于连接不同的服务端的。所以不要担心 65535 的限制。问题2访问本机的 ip 会通过交换机或者路由器吗问ip 填写自己本机的 ip 会通过交换机或者路由器吗。答不会的你可以试试无论是使用本机 ip还是 127.0.0.1 都是只过回环设备 lo。通过在 lo 上抓包即可看到而在真正的物理网卡下是抓不到包的。问题3服务器端只有一个端口收发请求不会乱吗问老师我本来没觉得我不明白 但是看了上面 列举的问题 一台机器最多能支持多少条 TCP 连接就有点疑惑了  就是服务器作为接收 WEB 或者其他端请求时  不管是 80 还是 443 对外暴露的基本上是一样的端口http请求来了之后 请求之间不会相互干扰吗或者同一个端口可以有多少个http请求我自己都凌乱了谢谢老师答我们分三步来理解你说的问题。第一、服务器端在接收到新连接的时候会创建新的 socket 出来。这个新的socket 上有完整的四元组内部源 IP、源端口、目的 IP 和目的端口信息并以 hashtable 的方式管理。第二、TCP 网络包体内部源 IP、源端口、目的 IP 和目的端口等信息都是携带在包头里的。第三。内核在接收到网络包的时候在协议栈处理的时候会解析包头根据这个包头中完整的四元组和内核中 hashtable 中管理的 socket 进行匹配只有四元组信息完全一致才能把接收到的数据放到该 socket 的接收队列中。不同的请求的 socket 上四元组信息并不完全一致所以请求之间不会相互干扰。问题4网上著名的 C10K 并发连接问题 具体是怎么回事问网上著名的 C10K 并发连接问题 具体是怎么回事答C10K 问题算是历史上的一个问题在 Linux 上最早的开发模型里只有线程编程模型来一个用户就需要使用一个进程来处理。但随着互联网发展的井喷服务器端要支持的并发数越来越高。如果还继续沿用这个模型的话就需要投入巨量的服务器资源。所以 C10K 问题的提出就是要处理如何让一台服务器同时处理 1 万个用户连接请求。在 epoll 诞生以后C10K 已经不是问题了。问题5网络丢包该如何排查问刚好遇到疑似 TCP 传输丢包的问题想请教老师科普下这种问题排查的整体思路和顺序是什么答TCP 传输丢包问题使用 tcpdump 抓包看看看看重试是如何发生的使用 wireshark 打开使用过滤器 tcp.analysis.retransmission 找到重传的包。还有一个基于 eBPF 的轻量级工具 tcpretrans 也可以试试。不过 eBPF 对 Linux 版本要求较高。问题6一台机器最多能支持多少条 TCP 连接?问一台机器最多能支持多少条 TCP 连接? 这个公式是什么怎么计算64GB 的 Linux 服务器可以支持多少条答一台机器最多能支持多少条 TCP 连接。只说服务器端吧一是受限于 Linux 里配置的可打开文件句柄数等内核参数但这些都很好修改调几个参数就行了。二就是内存了这个是硬性限制。最少也得是 3.3 KB 左右。所以如果算极限情况下的TCP连接数64 GB 除以 3.3KB 就行了。但一般都会给收发缓存区以及其它应用留一些 buffer问题7一条 TCP 需要消耗多大的内存问一条 TCP 连接需要消耗多大的内存 像mysql这种连接数和用户登录这种 session 信息也是一条 tcp 连接吗答TCP 连接在内核里消耗内存主要是两块一是表示 TCP 连接的 socket大约是 3.3K 左右。二是接收和发送数据的缓存区这个可大可小大了收发速度更快小了更省内存。但在较新的版本里只要收发结束内存就都可以回收了。你说的 mysql 的用户登录、session 等信息这个数据 TCP 里传输的数据。这个数据就看用户进程里是怎么存储的了如果存在内存里就占内存存到磁盘里就占磁盘。问题8CPU 飙高到 100%问老师好我的线上服务总是莫名其妙 CPU 飙高到 100%然后到某一个时刻突然掉下来内存和 IO 几乎都正常值请问应该从哪方面入手排查呢答这个就得具体问题具体分析了。得看看是用户态内存消耗的高还是内核态消耗的高。相关的命令有 top、vmstat、sar、mpstat 等。如果是内核态就用 strace 命令统计一下系统调用的耗时情况看有没有耗时特别长的。还可以考虑使用 perf 火焰图分析一下。问题9有没有推荐网络调优和监控的工具问请问张老师 有没有推荐网络调优和监控的工具。答网络比较复杂最好先了解它内部的工作原理看一下《深入理解Linux网络》然后再找相应步骤的工具可以看看《性能之巅》这样更好一些。问题10net.ipv4 有非常多的属性难道要挨个背下来问net.ipv4 有非常多的属性难道要挨个背下来现在就处于不知道从何看起的阶段不知道直接看您的这本书是否能帮忙建立起知识结构能知其然且知其所以然答不需要背最重要的是要理解网络工作底层工作原理这样再看这些参数的时候就非常容易理解了。这就好比庖丁解牛你如果对牛的骨骼肌肉的内部原理理解非常透彻的时候你解牛的时候自然就非常容易。而不是去死记硬背这些内核参数。咱们《深入理解Linux网络》就是这样一本介绍网络底层工作原理的书。书中会介绍到半连接队列、全连接是如何工作的理解这个原理你就能轻松理解 syncookie 这个参数了。而且再遭遇 TCP 中的三次握手等问题的时候你也能快速排查和定位原因了。问题11线上被冲垮帮忙 review 一下问你好曾经解决过一次线上服务器高峰时被冲垮的问题原因是网络相关靠着搜索引擎解决了后还是处于知其然不知其所以然的情况麻烦帮忙 review 下首先高峰被冲垮看了 mysql ,程序都没异常怀疑是网络问题。然后 netstat -n | awk 统计各种tcp连接状态的数量发现别的都很少established 单机上万了time_wait 也非常高。带宽直接被打满然后修改 file-max 和 sysctl 配置了如下和一些其他属性后time_wait 瞬间下降。net.ipv4.tcp_syncookies  1 net.ipv4.tcp_tw_reuse  1 net.ipv4.tcp_tw_recycle  1最后又加上 nginx ip 限流解决。虽然搜索到了生效的几个 net.ipv4 配置的意思但是依然不知道为什么会有这么多的 time_wait答你的问题的根本原因是在大流量可能是攻击流量请求的情况下使用了短连接。每一个短连接的主动释放连接的一方的 socket 都不会直接消失而是会先释放一部分内核对象后进入 TIME_WAIT 状态然后这个 socket 会一直占用一个端口号大约 2 分钟左右。recycle 和 reuse 的共同的作用都是尽量减少 socket 在 TIME_WAIT 上呆的时间这样就能尽快释放端口。尽快地退出 TIME_WAIT 可以释放端口保证后面的用户来的时候服务器请求如 mysql 等数据服务器的时候可以有充足的端口可用。问题12Linux 网络连接建立以后在文件层发生的变化是什么样的问Linux 网络连接建立以后在文件层发生的变化是什么样的都说linux中所有的东西是文件我如何通过网络连接去寻找该连接对应的文件是一个文件还是多个文件答linux一切皆是文件说的其实是一个 struct file 结构体。磁盘上的文件socket 都有这样一个 struct file 对象是一个内核上层的抽象。但是在内核底层上磁盘文件、socket 还是完完全全不一样的东西。cat命令也并不能把一个socket中的数据内容给展示出来。如果你非得想用类似 cat 的功能linux 下有个 ncat 命令你可以玩玩。服务器端# ncat -v -lp 8081 Ncat: Version 6.40 ( http://nmap.org/ncat ) ...... hello world客户端# nc -v 127.0.0.1 8081 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 127.0.0.1:8081. hello world问题13有没有通用的线上配置核心参数问关于连接和性能瓶颈线上我们经常是遇到问题再去搜方案有没有通用的必须要在线上配置的核心参数呢。答通用的其实内核都已经用默认值的方式给弄好了。无奈业务之间差异太多所以想一套参数适配所有的业务基本上还是不可能的。还得靠工程师根据当前业务的特点来适当灵活调整想看这次活动的同学可以点击左下角的「阅读原文」
http://www.pierceye.com/news/932573/

相关文章:

  • 宿州科技网站建设一站式网站管家
  • 网站开发模块学些什么郑州网站建设动态
  • 各类设计型网站wordpress 防注入
  • 网站中有一个非常著名的原则如何与老板谈网站建设
  • 免费十八种禁用网站如何做一个网页布局
  • cms仿站pc网站案例
  • dede如何做手机网站哪些客户需要做网站
  • 阜蒙县建设镇官方网站那种网站2021
  • 同信.长春网站建设北京网站建设策划
  • 长沙游戏网站开发开发人员公众号
  • 用手机能建网站吗软件商店软件下载
  • 天津自助建站哪个建设网站
  • 西宁市网站建设公司推荐网站全网建设 莱芜
  • 安徽阜阳网站建设公司wordpress网页自适应屏幕大小
  • 上海门户网站的亮点网站开发平台及常用的开发工具
  • 广州h5设计网站公司网站建设从建立服务器开始
  • 如何网站建设全包12306网站多钱做的
  • 阳江北京网站建设中国平面设计在线
  • 上海城乡建设中级职称报名网站合肥网站建设之4个细节要注意事项
  • 洮南网站建设哪家好鞍山信息港招聘信息网
  • 大气手机网站wordpress 添加设置
  • 公司创建网站销售wordpress缩略图支持外链图
  • php网站开发案例教程 dvdwordpress淘宝客自适应模板
  • 做建筑设计网站可以推广的网站有哪些
  • 安徽省建设厅证书查询官方网站关键词优化公司如何选择
  • io游戏网站青岛网站优化排名
  • 怎样建设网站?(怎样注册域名?如何选择主机?网站应有哪些功能模块网站备案可以变更吗
  • 欧美男女直接做的视频网站广告投放跟网站建设一样吗
  • 建网站的流程费用广州比较大的外贸公司
  • wordpress 调用站外api广州优化公司推广