首页
关于
联系我
Search
1
小米路由器4A千兆版(R4A) 关闭ipv6 防火墙
89 阅读
2
小米路由器4A千兆版(R4A)开启ssh
82 阅读
3
win11不能访问共享0x800704f8
77 阅读
4
华硕主板vga亮白灯
39 阅读
5
racknerd配置IPV6
35 阅读
未分类
各种资料
我的分析
技术活
游记
真相
笔记
经历
财务知识
资源类
软文
统计学
计划本
事件记录
反思
登录
Search
标签搜索
问题
linux
vps
debian
测试
其他
apt-get
库
wordpress
cdn
code
设置
信息
IP
nginx
应用
推荐
搬家
操作
bae
Typecho
累计撰写
493
篇文章
累计收到
0
条评论
首页
栏目
未分类
各种资料
我的分析
技术活
游记
真相
笔记
经历
财务知识
资源类
软文
统计学
计划本
事件记录
反思
页面
关于
联系我
搜索到
5
篇与
的结果
2022-04-16
ip的/24啥意思
ipv4 的ip是用二进制表示的,转为十进制,最小的是0 ,最大的数是255 。192.168.0.1/24 表示的意思就是,这是一个ip段,前24位不变。范围就是从192.168.0.0 - 192.68.0.255 32 位的 IPv4地址,分隔成 4 个 8 位段,每 8 位段的值在 0 ~ 255 之间,每个 8 位段之间用 “ . ” 分开,这就是 “ 点分十进制表示法 ” 。举个栗子:192.168.0.1而 128 位的 IPv6地址,是 IPv4 地址的 4 倍,如果用点分十进制表示法,那么会有 16 个八位组,地址过于冗长。为了使用方便, 使用十六进制表示法,分隔成 8 个 16 位段,每 16 位段的值在 0000 ~ FFFF 的十六进制数之间,每个 16 位段之间用 “ : ” 分开。举个栗子:2001:1111:0100:000a:0000:00bc:2500:0a0b为了方便理解,可以查看下面的进制转换表。
2022年04月16日
14 阅读
0 评论
0 点赞
2015-07-28
PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
最近在搞一个针对sm.ms 图片站的上传插件,然后就遭遇curl 坑,也不知道是年龄大了,还是PHP 真的越来越麻烦了。转载一篇文章,作为备注吧最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件。踩坑若干,够一篇文章了。重要警告没事不要读PHP的官方中文文档!版本跟不上坑死你!不同版本PHP之间cURL的区别PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。传统上,PHP的cURL支持通过在数组数据中,使用“@+文件全路径”的语法附加文件,供cURL读取上传。这与命令行直接调用cURL程序的语法是一致的:curl_setopt(ch, CURLOPT_POSTFIELDS, array( 'file' => '@'.realpath('image.png'), )); equals $ curl -F "file=@/absolute/path/to/image.png" <url> 但PHP从5.5开始引入了新的CURLFile类用来指向文件。CURLFile类也可以详细定义MIME类型、文件名等可能出现在multipart/form-data数据中的附加信息。PHP推荐使用CURLFile替代旧的@语法:curl_setopt(ch, CURLOPT_POSTFIELDS, [ 'file' => new CURLFile(realpath('image.png')), ]); PHP 5.5另外引入了CURL_SAFE_UPLOAD选项,可以强制PHP的cURL模块拒绝旧的@语法,仅接受CURLFile式的文件。5.5的默认值为false,5.6的默认值为true。但是坑的一点在于:@语法在5.5就已经被打了deprecated,在5.6中就直接被删除了(会产生 ErorException: The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead)。对于PHP 5.6+而言,手动设置CURL_SAFE_UPLOAD为false是毫无意义的。根本不是字面意义理解的“设置成false,就能开启旧的unsafe的方式”——旧的方式已经作为废弃语法彻底不存在了。PHP 5.6+ == CURLFile only,不要有任何的幻想。我的部署环境是5.4(仅@语法),但开发环境是5.6(仅CURLFile)。都没有压在5.5这个两者都支持过渡版本上,结果就是必须写出带有环境判断的两套代码。现在问题来了……(挖掘机滚远点!)环境判断:小心魔法数字!我见过这种环境判断的代码:if (version_compare(phpversion(), '5.4.0') >= 0) 我对这种代码的评价只有一个字:屎。这个判断掉入了典型的魔法数字陷阱。版本号莫名其妙的出现在代码之中,不查半天PHP手册和更新历史,很难明白作者被卡在了哪个功能的变更上。代码应该回归本源。我们的实际需求其实是:有CURLFile就优先采用,没有再退化到传统@语法。那么代码就来了:if (class_exists('\CURLFile')) { $field = array('fieldname' => new \CURLFile(realpath($filepath))); } else { $field = array('fieldname' => '@' . realpath($filepath)); } 建议明确指定的退化选项从可靠的角度,推荐指定CURL_SAFE_UPLOAD的值,明确告知php是容忍还是禁止旧的@语法。注意在低版本PHP中CURLOPT_SAFE_UPLOAD常量本身可能不存在,需要判断:if (class_exists('\CURLFile')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); } } cURL选项设置的顺序不管是curl_setopt()单发还是curl_setopt_array()批量,cURL的选项总是设置一个生效一个,而设置好的选项立刻就会影响cURL在设置后续选项时的行为。例如CURLOPT_SAFE_UPLOAD就和CURLOPT_POSTFIELDS的行为有关。如果先设置CURLOPT_POSTFIELDS再设置CURLOPT_SAFE_UPLOAD,那么后者的约束作用就不会生效。因为设置前者时cURL就已经把数据实际的识读处理完毕了!cURL有那么几个选项存在这种坑,务必小心。还好这种存在“依赖关系”的选项不多,机制也不复杂,简单处理即可。我的方法是先批量设置所有的选项,然后直到curl_exec()的前一刻才用curl_setopt()单发设置CURLOPT_POSTFIELDS。实际上在curl_setopt_array()用的数组中,保证CURLOPT_POSTFIELDS的位置在后边也是可靠的。PHP的关联数组是有顺序保障的,我们也可以假设curl_setopt_array()内部的执行顺序一定是从头到尾按顺序[注A],所以尽可放心。我的做法只是在代码表现上加个多余的保险,突出强调顺序的重要性防以后手贱。命名空间PHP 5.2或以下的版本没有命名空间。代码中用到了空间分隔符\就会引发解析器错误。要照顾PHP 5.2其实容易想,放弃命名空间即可。要注意的反倒是有命名空间的PHP 5.3+。无论是调用CURLFile还是用class_exists()判断CURLFile的存在性,都推荐写成\CURLFile明确指定顶层空间,防止代码包裹在命名空间内的时候崩掉。
2015年07月28日
2 阅读
0 评论
0 点赞
2015-04-10
sar 系统性能监控
最近折腾刚买的hostodo ,发现个不错的系统性能检测工具sar ,debian 上安装的是 sysstat 。 顺便复制一点资料,做参考sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。sar命令常用格式sar [options] [-A] [-o file] t [n]其中:t为采样间隔,n为采样次数,默认值是1;-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。options 为命令行选项,sar命令常用选项如下:-A:所有报告的总和-u:输出CPU使用情况的统计信息-v:输出inode、文件和其他内核表的统计信息-d:输出每一个块设备的活动信息-r:输出内存和交换空间的统计信息-b:显示I/O和传送速率的统计信息-a:文件读写情况-c:输出进程统计信息,每秒创建的进程数-R:输出内存页面的统计信息-y:终端设备活动情况-w:输出系统交换活动信息1. CPU资源监控例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,需键入如下命令:sar -u -o test 10 3屏幕显示如下:17:06:16 CPU %user %nice %system %iowait %steal %idle17:06:26 all 0.00 0.00 0.20 0.00 0.00 99.8017:06:36 all 0.00 0.00 0.20 0.00 0.00 99.8017:06:46 all 0.00 0.00 0.10 0.00 0.00 99.90Average: all 0.00 0.00 0.17 0.00 0.00 99.83输出项说明:CPU:all 表示统计信息为所有 CPU 的平均值。%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。如果要查看二进制文件test中的内容,需键入如下sar命令:sar -u -f test 2. inode、文件和其他内核表监控例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:sar -v 10 3屏幕显示如下:17:10:49 dentunusd file-nr inode-nr pty-nr17:10:59 6301 5664 12037 417:11:09 6301 5664 12037 417:11:19 6301 5664 12037 4Average: 6301 5664 12037 4输出项说明:dentunusd:目录高速缓存中未被使用的条目数量file-nr:文件句柄(file handle)的使用数量inode-nr:索引节点句柄(inode handle)的使用数量pty-nr:使用的pty数量3. 内存和交换空间监控例如,每10秒采样一次,连续采样3次,监控内存分页:sar -r 10 3输出项说明:kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.4. 内存分页监控例如,每10秒采样一次,连续采样3次,监控内存分页:sar -B 10 3输出项说明:pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)majflt/s:每秒钟产生的主缺页数.pgfree/s:每秒被放入空闲队列中的页个数pgscank/s:每秒被kswapd扫描的页个数pgscand/s:每秒直接被扫描的页个数pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比5. I/O和传送速率监控例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:sar -b 10 3屏幕显示如下:18:51:05 tps rtps wtps bread/s bwrtn/s18:51:15 0.00 0.00 0.00 0.00 0.0018:51:25 1.92 0.00 1.92 0.00 22.6518:51:35 0.00 0.00 0.00 0.00 0.00Average: 0.64 0.00 0.64 0.00 7.59输出项说明:tps:每秒钟物理设备的 I/O 传输总量rtps:每秒钟从物理设备读入的数据总量wtps:每秒钟向物理设备写入的数据总量bread/s:每秒钟从物理设备读入的数据量,单位为 块/sbwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s6. 进程队列长度和平均负载状态监控例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:sar -q 10 3屏幕显示如下:19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-1519:26:00 0 259 0.00 0.00 0.0019:26:10 0 259 0.00 0.00 0.0019:26:20 0 259 0.00 0.00 0.00Average: 0 259 0.00 0.00 0.00输出项说明:runq-sz:运行队列的长度(等待运行的进程数)plist-sz:进程列表中进程(processes)和线程(threads)的数量ldavg-1:最后1分钟的系统平均负载(System load average)ldavg-5:过去5分钟的系统平均负载ldavg-15:过去15分钟的系统平均负载7. 系统交换活动信息监控例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:sar - W 10 3屏幕显示如下:19:39:50 pswpin/s pswpout/s19:40:00 0.00 0.0019:40:10 0.00 0.0019:40:20 0.00 0.00Average: 0.00 0.00输出项说明:pswpin/s:每秒系统换入的交换页面(swap page)数量pswpout/s:每秒系统换出的交换页面(swap page)数量8. 设备使用情况监控例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:# sar -d 10 3 –p屏幕显示如下:17:45:54 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util17:46:04 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0017:46:04 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0017:46:04 vg_livedvd-lv_root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0017:46:04 vg_livedvd-lv_swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00其中:参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.rd_sec/s:每秒读扇区的次数.wr_sec/s:每秒写扇区的次数.avgrq-sz:平均每次设备I/O操作的数据大小(扇区).avgqu-sz:磁盘请求队列的平均长度.await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.%util:I/O请求占CPU的百分比,比率越大,说明越饱和.1. avgqu-sz 的值较低时,设备的利用率较高。2. 当%util的值接近 1% 时,表示设备带宽已经占满。要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
2015年04月10日
11 阅读
0 评论
0 点赞
2015-04-07
hostodo Vps 体验
ps:最近工作有点繁忙,博客丢下了一阵子,好在挂链接的“猎户星”提醒,赶紧更新一下说起来这段时间发生的事情好多啊,但是一直腾不出手来整理,遗忘了好多。刚好手里有个新买的vps,拿出来做个测试吧,说实话vps这玩意,实在是有点烂大街了,平常的测试只能是呵呵。性能都是那个样子。hostodo 这个唯一的优点就是量大。看配置,价格18$CPU:4 cores 内存:1024MB vSAWP:2048MB 硬盘:150 GB 月流量:3TB/1Gbps 虚拟架构:OpenVZIP/面板:1个/Virtualizor是不是量挺大的,自己准备买来做个web 和dns 服务器,顺便做代理,做翻墙。目前来看还是应付的不错,一直都挺稳定,没有宕机。也没有警告。我估计可能是我用的少,另外服务器资源也充足。 就不上ping dd 了,实际测试电信、移动速度不错,联通差一点,各个网络都有掉包,这个也没办法,国家网络就这样。不懒主机商。 有需要的自己搜索购买吧,我就不上链接了。免得说我广告。 好多网友咨询性能测试,虽然这玩意相当俗气,而且真心没啥用,但就是有人喜欢,那就分享下 wget freevps.us/downloads/bench.sh -O - -o /dev/null|bashroot@te:~# wget freevps.us/downloads/bench.sh -O - -o /dev/null|bashCPU model : Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHzNumber of cores : 4CPU frequency : 875.250 MHzTotal amount of ram : 1024 MBTotal amount of swap : 2048 MBSystem uptime : 20 min, Download speed from CacheFly: 100MB/sDownload speed from Coloat, Atlanta GA: 26.1MB/sDownload speed from Softlayer, Dallas, TX: 2.42MB/sDownload speed from Linode, Tokyo, JP: 5.45MB/sDownload speed from i3d.net, Rotterdam, NL: 2.55MB/sDownload speed from Leaseweb, Haarlem, NL: 19.6MB/sDownload speed from Softlayer, Singapore: 5.50MB/sDownload speed from Softlayer, Seattle, WA: 15.7MB/sDownload speed from Softlayer, San Jose, CA: 63.1MB/sDownload speed from Softlayer, Washington, DC: 19.0MB/sI/O speed : 1.0 GB/s顺便分析下数据: 1:可怜的cpu 被限速了,前3个核心被限速200 ,好低啊 。我服了。processor : 0vendor_id : GenuineIntelcpu family : 6model : 60model name : Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHzstepping : 3microcode : 26cpu MHz : 200.000
2015年04月07日
10 阅读
0 评论
0 点赞
2014-07-29
GOGOLE 新IP
http://210.242.125.20/http://74.125.205.147/http://91.213.30.151/这个你懂的。
2014年07月29日
6 阅读
0 评论
0 点赞