服务器常识

目录

阿里云文档,述说常见的游戏灾难https://help.aliyun.com/document_detail/64680.html?spm=a2c4g.11174283.6.573.241166308gTZXf

1:带宽  单位:Mbps(兆比特)

2:IOPS,吞吐量

3:什么是环境变量

4:DNS

5:什么是CDN

6:DOS攻击

7:什么是高并发

8:网络字节序和主机字节序


阿里云文档,述说常见的游戏灾难https://help.aliyun.com/document_detail/64680.html?spm=a2c4g.11174283.6.573.241166308gTZXf

1:带宽  单位:Mbps(兆比特)

@1:案列:       

       比我的带宽10M (意思是10Mbps),那么我理论下载速度:  10/8 = 1.25MB/s  就是理论上每秒可以传输1.25Mb数据。

@2:带宽可以细分:

      上行   就是我上传数据的速度。

      下行   下载数据的速度

      一般是下行速度大于上行的速度,但是一般说的带宽就是指上行带宽。

@3:购买选择,以阿里云公网带宽,为列

                  如是列出以下推荐列表:

                  1、日PV1000以下的企业站、小型商城、小型门户:

                        购买1M的带宽,1G内存就够了。

                 2、日PV1000以上,一万以下的中型商城、中型门户站:

                       购买2M的带宽,2G内存

                 3、日PV超过一万,大中型商城、大中型门户站:

                       购买5M以上带宽、4G以上内存。

                对于刚刚起步的,1m的带宽完全足够,等有了足够的人气,网站规模渐渐做大时,可以再考虑增加内存和带宽!

            地域的话,三个大陆的差距不大,可以选便宜的那个,偏南方客户可以选杭州,偏国外的,就选香港!

              

2:IOPS,吞吐量

      体现存储系统性能的主要指标就是IOPS

      IOPS:就是一秒内,磁盘进行多少次I/O读写

      磁盘的吞吐量:也就是每秒磁盘 I/O 的流量,即磁盘写入加上读出的数据的大小

      每秒 I/O 吞吐量= IOPS* 平均 I/O SIZE。从公式可以看出: I/O SIZE 越大,IOPS 越高,那么每秒 I/O 的吞吐量就越高

 

3:什么是环境变量

       a = /opt/code

      相当于给用户或系统设置一个变量,在任何地方调用 这个变量(a) 都可以得到  对应的值(/opt/code)

      在window 下     计算机-->高级系统设置--->环境变量             

                   用户变量:这个变量只有这个用户使用有效

                   系统变量:  这个变量全部用户都有效

     在linux下

1:调用变量
    $(变量名)
2:查看某个变量 
    echo $(PATH)
3:查看全部变量
    export

4:临时添加环境变量,离开当前shell 失效
    [root@localhost u-boot-sh4]#export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH
    
 
5:添加当前用户 环境变量,该用户永久有效  (可以加在home/.bash_profile 或 home/.bashrc)
    在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】 
    用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 
    例如:编辑guok用户目录(/home/)下的.bash_profile 
    $ vi /home/.bash_profile    
    添加如下内容: 
    export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 
    注:要想马上生效还要运行$ source /home/.bash_profile不然只能在下次重进此用户时生效。
    注: 有的系统 .bash_profile   是 .profile

6:bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh 
    随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下    的.bashrc脚本, 
    而.bashrc脚本会执行/etc/bashrc脚本。 
至此,所有的环境变量和初始化设定都已经加载完成. 

  /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。所以修改这个文件,没有重载,用户重登也不会生效
  而/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
  ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。所以修改这个,不重载用户重登会生效
    ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。  所以修改这个,不重载用户新打开shell会生效

7:永久添加环境变量(影响所有用户)
   # vim /etc/profile
   在文档最后,添加:
   export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH" 
   保存,退出,然后运行:
   修改完重载    #source /etc/profile
   不报错则成功。





  

4:DNS

域名解析器,将域名转成可以实际访问的IP

5:什么是CDN

     

CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,
用户请求资源时,就近返回节点上缓存的资源,
而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,
保证用户访问资源的速度和体验。

关键点 内容 分发 网络内容:
内容:网站源站的静态内容,比如页面的js/css,视频的mp4/flv,下载的软件安装包等文件
分发:把源站的内容缓存到不同地区的各个节点上
网络:用户访问网站是先访问附近的节点缓存,命中缓存就可以直接获得内容,达到网络加速的效果。


@1:没有CDN的情况   (源服务器,就是自己的服务器)
用户==》通过DNS域名解析得到IP ===》访问源服务器,得到数据
@2:有CDN
用户==》通过DNS==>DSN会转到,备案的  CDN内部的DNS===>得到分配最近的 缓存服务器
     ===》有数据返回给用户,,  找不到就访问源服务器==》返回缓存服务器备份
     ===》数据返回给用户

服务器常识_第1张图片

6:DOS攻击

一个用户的登入,必须先建立网络链接,之后才能进行登入验证处理。
如果模拟无数个用户与服务器建立网络链接,虽然没法正确登入,但是还是占用了服务器的链接资源,
其他正常玩家就无法建立连接,更谈不上登入流程。

7:什么是高并发

   

判断一个系统的并发能力的几个基础指标
1:响应时间:系统对请求做出的响应时间,你可以理解为一个http请求返回所需要的时间
2:吞吐量:单位时间内处理的请求数量
3:QPS:每秒可以出来的请求数。
4:并发用户数:同时承载正常使用系统功能的用户数,也就是多少人同时使用这个系统,这个系统还能正常运行。这个用户数几十并发用户数。


提高并发一般
1:提高服务器的配置
2:增加服务器


一般的互联网公司分层框架
1:客户层:调用方的浏览器或者手机APP.
2:反向代理层: 系统统一入口,反向代理,如:nginx
3:服务层:服务器
4:数据--缓存层,缓存加速访问 存数据。
5:数据-数据库层:数据库固化数据存储。

8:网络字节序和主机字节序

网络字节系 就是 标准化字节系(也就是大端字节系)
主机字节系:就是自己主机内部,内存数据处理方式,可以分为两种
          大端字节系:  高位数据 存储在低位内存中
          小端字节系:  高位数据 存储在高位内存中

按字节为单位,看是从大到小,还是从小到大的排序规则


// 查看主机是大端还是小端
int main()
{
     
                unsigned long a = 0x12345678;
                unsigned char *p = (unsigned char *)(&a);
 
                printf("主机字节序:%0x    %0x   %0x   %0x\n",  p[0], p[1], p[2], p[3]);
 
                unsigned long b = htonl(a);  //将主机字节序转化成了网络字节序
                
                p = (unsigned char *)(&b);
 
                printf("网络字节序:%0x    %0x   %0x   %0x\n",  p[0], p[1], p[2], p[3]);
                return 0;
}

 

你可能感兴趣的:(游戏常识)