diff --git a/translation-projects/README-optimization/optimized-README/A-Tune-Collector.README.en.md b/translation-projects/README-optimization/optimized-README/A-Tune-Collector.README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..1ca3ebeb5fa787572e233a09962810ac18627fed --- /dev/null +++ b/translation-projects/README-optimization/optimized-README/A-Tune-Collector.README.en.md @@ -0,0 +1,210 @@ +# A-Tune-Collector + +#### Introduction +The A-Tune-Collector is used to collect various system resources and can also be used as the collector of the A-Tune project. + +#### Installation + +If the collector is used for the A-Tune project, run the following command to install the collector. + +``` +python3 setup.py install +``` + +#### Instructions + +Collection Command Format + +``` +cd atune_collector +python3 collect_data.py [OPTIONS] +``` + +Parameter Description + +| Parameter | Description | +| ------------ | ------------------------------------------------------------ | +| --config, -c | Specifies the json file to be parsed. The json file is used to configure the system resource information to be collected. If this parameter is not specified, the /etc/atune_collector/collect_data.json file is read by default. | + +Example of use + +- Use the default collection resource configuration file. + + ``` + python3 collect_data.py + ``` + +- Use the specified collection resource configuration file. + + ``` + python3 collect_data.py -c collect_data.json + ``` + +Configuration Description + +Table 1 collect_data.json file + +| Name | Description | Type | Value Range | +| ---------------- | ------------------------------------------------------------ | ------- | ----------- | +| network | Specifies the NIC to be collected. | String | - | +| block | Specifies the disk to be collected. | String | - | +| sample_num | Specifies the sample num to be collected. | Integer | >0 | +| interval | Interval for collecting data, in seconds. | Integer | >0 | +| output_dir | File path for storing collected data. | String | - | +| workload_type | Application load type of the collection environment. The default value is default. | String | - | +| collection_items | Table 2 lists the system parameters to be collected. | List | - | + +Table 2 Configuration description of collection_items + +| Name | Description | Type | Value Range | +| --------- | ------------------------------------------------------------ | ------- | ----------- | +| name | Name of the item to be collected. | String | - | +| module | Category of the item to be collected. The category must match the definition of the corresponding collection module. | String | - | +| purpose | Type of the item to be collected. The type must match the definition of the corresponding collection module. | String | - | +| metrics | Indicator of the item to be collected. | List | - | +| threshold | Threshold of the item to be collected. | Integer | - | + +Configuration example + +Collect_data.json file configuration example as follow: + +``` +{ + "network": "eth0", + "block": "sda", + "sample_num": 20, + "interval": 5, + "output_dir": "/var/atuned/collect_data", + "workload_type": "default", + "collection_items": [ + { + "name": "cpu", + "module": "CPU", + "purpose": "STAT", + "metrics": [ + "usr", + "nice", + "sys", + "iowait", + "irq", + "soft", + "steal", + "guest", + "util", + "cutil" + ], + "threshold": 30 + }, + { + "name": "storage", + "module": "STORAGE", + "purpose": "STAT", + "metrics": [ + "rs", + "ws", + "rMBs", + "wMBs", + "rrqm", + "wrqm", + "rareq-sz", + "wareq-sz", + "r_await", + "w_await", + "util", + "aqu-sz" + ] + }, + { + "name": "network", + "module": "NET", + "purpose": "STAT", + "metrics": [ + "rxkBs", + "txkBs", + "rxpcks", + "txpcks", + "ifutil" + ] + }, + { + "name": "network-err", + "module": "NET", + "purpose": "ESTAT", + "metrics": [ + "errs", + "util" + ] + }, + { + "name": "mem.band", + "module": "MEM", + "purpose": "BANDWIDTH", + "metrics": [ + "Total_Util" + ] + }, + { + "name": "perf", + "module": "PERF", + "purpose": "STAT", + "metrics": [ + "IPC", + "CACHE-MISS-RATIO", + "MPKI", + "ITLB-LOAD-MISS-RATIO", + "DTLB-LOAD-MISS-RATIO", + "SBPI", + "SBPC" + ] + }, + { + "name": "vmstat", + "module": "MEM", + "purpose": "VMSTAT", + "metrics": [ + "procs.b", + "memory.swpd", + "io.bo", + "system.in", + "system.cs", + "util.swap", + "util.cpu", + "procs.r" + ] + }, + { + "name": "sys.task", + "module": "SYS", + "purpose": "TASKS", + "metrics": [ + "procs", + "cswchs" + ] + }, + { + "name": "sys.ldavg", + "module": "SYS", + "purpose": "LDAVG", + "metrics": [ + "runq-sz", + "plist-sz", + "ldavg-1", + "ldavg-5" + ] + }, + { + "name": "file.util", + "module": "SYS", + "purpose": "FDUTIL", + "metrics": [ + "fd-util" + ] + } + ] +} +``` + +#### Related Information + +A-Tune project website:https://gitee.com/openeuler/A-Tune + diff --git a/translation-projects/README-optimization/translated-README/Gazelle-cni.README.en.md b/translation-projects/README-optimization/translated-README/Gazelle-cni.README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..8d241ad8216d76ea401e60d18c37f13a2572f1f5 --- /dev/null +++ b/translation-projects/README-optimization/translated-README/Gazelle-cni.README.en.md @@ -0,0 +1,60 @@ +# Gazelle-cni + +#### Motivation + +Gazelle is a user-mode protocol stack that has been commercialized within Huawei. It supports TCP/UDP protocol stack. Compared with similar software, Gazelle has many advantages in performance and applicability, including concurrency linearity, low latency, ease of use, etc. . + +The effect drawing of performance reference acceleration Nginx is as follows: + +![img](https://gitee.com/openeuler/gazelle-cni/raw/master/Nginx-2.png) + + Linearity is close to 1 + +![img](https://gitee.com/openeuler/gazelle-cni/raw/master/nginx-1.png) + +Delays in transmission are small + +Ease of use : no need to modify the code , no need to recompile , and only install acceleration Library. + +The Gazelle-CNI project is to open source of Huawei’s internal Gazelle commercial project and apply it to cloud-native scenarios. This project will be one of the important technologies to accelerate cloud-native ServiceMesh. + +ServiceMesh of cloud-native scenarios has become a standard component in various cloud scenarios, and among them is the de facto standard implemented by istio. Envoy is the data plane component of istio, so the goal of this project is to accelerate the Envoy component. + +#### Objective + +Performance: Improve the performance of the service grid data plane, achieve a 30% reduction in the service access latency in the cluster, and a 30% increase in the service access throughput in the cluster. + +Ease of use: open source istio is plug and play, with no code modifications and no rebuild required. + +#### Introduction + +As the data plane component of istio, Envoy takes over all external data flows in the grid and achieves LB, statistics and other functions. The data flow figure is as follows : + +![img](https://gitee.com/openeuler/gazelle-cni/raw/master/envoy-1.png) + +Among them, we can see that the entire data flow path is lengthy, and there is a bottleneck to the performance of the service grid. So we accelerate its entire data path, the acceleration plan is as follows: + +![img](https://gitee.com/openeuler/gazelle-cni/raw/master/envoy-2.png) + +The acceleration includes: + +1. Gazelle CNI: Optimization based on Gazelle,the Huawei's internal commercial project. +2. Socket-map: Use eBPF's sockmap technology to realize the communication acceleration between sockets +3. XDP Bridge: Use XDP technology to implement the Bridge function and use it as the Bridge that kubelet pulls up by default. + +#### Roadmap Planning (tentative) + +1. Gazelle project open source: Open source code before 2021.6.30. +2. Gazelle-CNI technology demo demonstration: The demo demonstration will be completed before 2021.3.30. Envoy can simultaneously apply the Gazelle protocol stack and the kernel protocol stack to complete single-node acceleration. +3. Gazelle-CNI technology development: Complete the CNI adaptation of the Gazelle project and AF_XDP adaptation before 2021.5.30. +4. Socket-map technology: Technology development will be completed before 2021.6.30. +5. XDP bridge technology: Technology development will be completed before 2021.7.30. + +#### Join Us + +At present, Gazelle technology is mature, but other technologies, such as Gazelle-CNI, are currently in the design and prototype verification stage. If you are interested in our community, welcome to join us. + +#### Contact Us + +[high-performance-network@openeuler.org](mailto:high-performance-network@openeuler.org) [dev@openeuler.org](mailto:dev@openeuler.org) + diff --git a/translation-projects/README-optimization/translated-README/Geo-coding.README.en.md b/translation-projects/README-optimization/translated-README/Geo-coding.README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..80262641f07192f21cee61e397f8d516d38b70e8 --- /dev/null +++ b/translation-projects/README-optimization/translated-README/Geo-coding.README.en.md @@ -0,0 +1,83 @@ +========== +Geo-coding +========== +Geo-coding is a Python client for geographic coordinate-related services, including common and popular geocoding, coordinate calculation, and coordinate system conversion functions. + +Service Scenario +------------ + +* Serving for services and projects that require latitude and longitude geographic coordinate positioning and calculation, such as various geographic coordinate big data projects. +* Serving for the underlying toolkit that serves similar map projects, and providing tools for many businesses that need to calculate latitude and longitude to determine orientation. + +Function +------------ +1. Geocoder: Enable developers to use third-party geocoding programs and other data sources to easily locate the coordinates of addresses, cities, countries, and landmarks around the world. Development sequence: Baidu, Gaode... + +2. Coordinate system conversion: For example, Baidu, Gaode, Geodetic Coordinate System and National Bureau of Survey and Measurement and other standards perform longitude and latitude coordinate conversion. + +3. Distance: Calculate the actual distance between coordinates and other practical functions. + +4. Unit conversion + +5. Data: Longitude and Latitude Coordinates of China's Border + +Advantage +------------ +Nowadays, most of the software with geographic functions are complicated, and there are not many coordinate softwares that adapt to Chinese maps. The library is a lightweight tool for pure Python libraries,aiming at more functions and providing low-level fast services for actual business. + +Development Plan Sequence +------------ +* 2,5,3,4,1 + +Version +------------ +* Python 3.x +* Linux: build/passing +* Windows: build/passing + +Example of Use +------------ +* + + +How to Contribute +------------ +Are you ready to contribute or use? This is how to set up "geocoding" for local development. + +1. Fork the `geo-coding` repository on Gitee. + +2. Clone your repository locally: + + $ git clone https://gitee.com/weihaitong/geo-coding.git + +3. This is how you use this tool: + + $ cd geo-coding/ + $ python setup.py install + +4. If you want to contribute to this project, you can create a branch for local development: + + ```shell + $ git checkout -b name-of-your-bugfix-or-feature + #Now You can now make changes locally. + ``` + +5. Submit your changes and push your branch to Gitee: + + ```shell + $ git add . + $ git commit -m "your description" + $ git push origin name-of-your-bugfix-or-feature + ``` + +6. Submit a pull request through the Gitee website. + + +Pull Request Guidelines +----------------------- + +Before submitting a pull request, please check that it meets the following guidelines: + +1. The pull request should include testing. +2. If the pull request adds a function, the documentation should be updated. Put your new function in a function with a docstring and add the function to the list of README.rst. +3. The pull request should apply to Python 3.x. And make sure that the test passes all supported Python versions. \ No newline at end of file